Pages

Pretensions of objectivity must be left at the door, clothing is optional...

My Poems - My Music - My Paintings - My Serialized Novels

The Wholy Order of The MEEK
An Atheist Pagan Hymn
My first book of Atheist Spirituality
What Canada REALLY NEEDS !!
SG Atlantis and their Unethical BS
Ring of Corruption

"All that is valuable in human society depends upon the opportunity for development accorded the individual."-A. Einstein

"Ain't it funny how the factory doors close, around the time that the school doors close,
around the time that a hundred thousand jail cells open up to greet you, like a Reaper...." -Zack de la Rocha

They say "Sing while you slave!", but I just get bored... -Dylan

"It's NOT a 'War on Drugs'. It's a war on Personal Freedom.Keep that in mind at ALL times" - Bill Hicks

"Opinions are like assholes, everybody has one" - Anon

"I'd get pretty bunged up without my asshole" - C. Taylor

"If you're going to tell people the truth, make them laugh, otherwise they'll kill you" - O. Wilde

"It is likely to excite dissatisfaction against government and incite people to non co-operation..."

Monday, February 02, 2015

Doomed to second place for lack of openvisualization. Why Linux needs a decent game engine...

I have lots of other things I really should be doing.
Preparing litigation and stuff.
But I have had a long term project for many years
and I am starting to see the means of accomplishing it.
Part of the reason it has taken me so long is my aversion to programming.
The thing about it is, you can read and even adjust/fix other people's work if it is commented well, and if you work with numerous similar systems, over time you get to understand common things like declaring variables, including headers and other libraries, linking, referencing, entity definition, and the like. You can do a lot of bashing without reading math, just treating math as blocks that represent a calculation regarding a higher function, which you can reference with an understandable $_string of text or a label/definition.
For many years I was a network administrator and application specialist. I don't do that anymore because I have no car or phone or internet. And I really always hated getting $35K to do the work for a numbnuts that was not able do the necessary intricate work, while he sat in a better chair with a better laptop and a better car and made $100K. Done. Hire some ppl direct from Bombay or get a bunch of $0/hr practicum students, thank you very much. I'm retired.
I can't really lift a computer anyway these days.
I haven't been able to for a long time except the 3 times a year I move my own or get an opportunity to upgrade them. Which I recently did.
I had 3 pentium 4 machines and and a celeron laptop B4, now I have 2 core 2 duo's and a sempron with the celery still. You were really uninterested in knowing that.
I can tell.
So.
My Grand Mission.
I have a few actually, but I don't have them numbered so we'll call this
The Christuus Gnosis Grand Linux Gaming Vision
to be specific.
Microsoft works good
and we, as geeks, like games.
And games work on windows.
Really cool games.
Lots of them.
Linux was good for servers.
That's where it was born.
On university science nerd computers for people who wanted to do bizarre shit like calculate rocket science or control particle smasher gizmos. Or file/web server administrators.
It had a sucky desktop for years.
Because, really
for about a decade
anyone who was running a nix server
had a very ugly CDE-X interface or none
and they did a lot of terminal bashing because the CDE was so clunky.
Drag and drop was rare on a linux machine for a very long time.
Linux machines rarely played music.
I remember many machines,
doing their thing
there was no media player on them
only text.
Possibly a beep.
You didn't double click a program you typed its NAME.
Now there are a number of good “window managers” for linux and they've emulated the bloat and bling of Micro$hit to the max. Modern linux takes advantage of modern graphics cards and connects up well with wifi and audio cards.
I must admit, Compiz is faster than Aero.
But,
unless you have a futuristic space machine rig
something that can handle a sluggish wine emulation layer.
you can't play good GAMES in linux.
Which is dumb.
Because Linux is about trim, not bloat.
That's always been the l33t geek thing
avoiding the Micro$hit bloat
That and NSA carnivore/echelon backdoors built into closed source OS's...
Oh, that pesky Patriot Act and its twin eh?
A linux machine, with its software,
if you are so inclined,
can be compiled by a set of scripts,
and you can, in fact
peruse every line
if that's what you do for shit's and giggles.
Or security.
You can read every line of what creates each part of the os and its associated applications or you trust a repository.
But even the files from the repository can be scrutinuzed or rebuilt from c/c++ text source.
You can't do that with Apple/Skynet or Micro$hit.
You get extra E.T. gnomes that are invisible and orifices you didn't know you had.
IPV6 pings galore disabling your IPV4 subnet protection and honing in with a google maps 3d overlay of your position within 300 metres.
its so simple and beautiful...
Did you know you can do that yourself?


Back to the Game Engine Vision.
Linux can run on older hardware. Linux has OpenGL(3D), OpenAL(Sound), OpenSDL(input) etc.
Much of the world is actually still using pentium technology.
There are cities in the world with internet cafes where 200 people are sharing a 98k PHONE MODEM.
Most of them run Linux of some kind or hacked Micro$hit.
Africa, malaysia, india, the boonies of russia, the remote or poor places of the world
where people don't throw out a ten year old computer,
they blow out the dust and replace a couple things
and keep it going
because it has value
as a tool to learn and access knowledge, communicate, and
visualize
Let's take my piece of crap celery laptop here.
Celeron 1.8 with 512 megs of ram and a 64 meg intel integrated video taking 64 megs of my system ram.
Yuck, you say.
I say yuck too.
I've lugged its carcass a lot of places and downloaded everything necessary to set up a half dozen other machines over 2 years.
At first it lasted 30 sec with the battery. I've brought the unplugged life up to 25 minutes.
I am accepting any better rides.
Please.
Even fractionally better.
So this crappy celery with WindBlowsXP
and all the micro$hit fx cranked off
could run the following commercial games well enough to play them through a number of times:
GTA-Vice City
Deus Ex 2: Invisible War, Battlefield 2, Project IGI
Age of empires/Empire Earth/Starcraft/
Planescape Torment/Baldur's Gate
Myst


These games I played and also extensively MODDED the game graphics files using the celery in XP:
Sins of a Solar Empire
Quake 1, 2, 3
Unreal Tournament 2004
Half-Life 1/Opposing Force/Blue Shift with “high def” mods
Far Cry 1
Deus Ex + Mods/high def packs
System Shock 2
The celery runs 3DS MAX 9, Softimage 6, ModTool 6 and 7, 3d-Coat, Zbrush, Silo, Lightwave, Maya, the UT2k4 editor, the DX and HL1 editors, photoshop 7, etc.
And I can mod those games.
In WinBlows XP pro.
Which is no longer on the laptop
it now has mint
If linux is NOT bloated,
and has ADEQUATE audio/video driver support
and open gl
it SHOULD be able to play these games,
or games of their complexity
and mod the files
on a celery.
On a piece of crap that some kid somewhere somehow managed to get linux onto, it should run these old games or have compareable linux versions in a moddable form.
In 20 years of watching the Linux desktop evolve
from the server roots of linux
where no one ever would install X,
to the bling of compiz,
we haven't got the basic thing that wets a geeks pants right.
We, as geeks who use linux and see it's nascent potential as a production environment for GPL and commercial games. We have had no good engine.
We haven't got it Right.
Most of a linux distro is really crap.
The bloat.
If you install debian using apt and build a system by hand over a couple days you can actually have a fully working linux desktop with full open gl, audio and video support, and a couple base apps including a bare game engine.
And it can weigh in at 500 megs.
Anything over 800 megs
is the bloat
Now, I like the mdm login themes and the icons and the little bit of bling in modern linux.
A windows 7 install is 8 gigs at base so the 2 G base of mint/debian/ubuntu is ok.
But the core install doesn't have a good basic 3d engine.
Just the support for the open gl.
In the last few years Open Arena and Xonotic were well recieved,
but they are based on previous technology in 3D.
They came from the Quake 3 code by IdTech.
Which Carmack made GPL.
That technology did not support normal mapping, or quality translucency. It had poor shadows and no reflections. There was no basic ogl effects like heat haze.
These things are important.
Especially the normal maps.
In gaming technology the ability to use normal maps on a surface allows the designer to use extremely simple geometry and overlay exceptional detail using a special image. The image is at least 20 times faster to process than computing the extra detail as mesh geometry would be. The fine details catch and cast shadows and render quickly.
I went on at length about this in other articles you can read.
 
So.
The Vision.
A DECADE+ ago.
A long time ago.
The original programmer of the highly successful and groundbreaking 3D Quake series, John Carmack
released the next generation of his engine,
for the commercial release of Doom 3.
It was followed by Prey and Quake 4.
Like his previous games, the files and entity definition system, the guis, localizations, pda's, everything basically, was open to be modded by graphic designers or programmers. You could extract all the game assets and modify them, creating mods with different textures, npc, monsters, gui surfaces, objectives, etc.
The engine supported normal maps, bump maps, specular maps, additive glow maps, flexible entity/material definitions, interactive gui materials that could be applied to meshes made in a 3D program. Basic open gl 1.3 shaders were included as well as advanced ones.
So the engine, with smaller levels and maps than the commercial ppl made,
will run on almost anything, and show these effects and materials.
Like this celery.
With XP at 800x600 and the textures fixed on DDS I can run Doom 3, Prey, and Quake 4 on my celery and make a basic large room with some stuff in the editor, I can bsp it and run it.
On the celery.
With XP.
Not linux yet.
That's what we're trying to achieve.
With my Plan.
The Vision.
The Grand Vision.
About 5 years after the original release of Doom 3
the game code was made GPL by Carmack.
And a Linux port appeared on the idtech servers.
Very few people got it to run.
But the code was made available.
But then,
ipads, and androids,
steam and udk,
apps and iphones and itunes
deluged us and deluded us
they distracted everyone
and they would rather use their
unlimited bandwidth
to download the bloated UDK
that skims 20% of your profits
or steam
that chokes offline every 2 months
all encrypted
So the media and gadget satiated geeks
abandoned the Holy Code
this dark shadowy gift
that was given to everyone
by our savior
Ahem.
There are 4 main “forks” of the Doom 3 code for linux.
All can be cross compiled to make win32/64 binaries and linux 32/64 bit binaries.
None of them has a binary, except the massive Dark Mod.
A binary is the executeable of the game engine that will run the original game.
Specific dedicated humans who go through a COMPLEX series of steps
can install the necessary tools and dev headers and compile the code for their machine or cross compile it.
These are not normal people.
They really are not.
The IdTech documentation
is absolutely lame to the point of obscure ridiculousness.
Doom 3, Quake 4, and Prey are Completely moddable.
Everything can be modified.
Without programming anything,
just creating different entities, materials, guis, localizations, pda's, models, maps, DEFINITIONS, an entire game can be created. Every interface can be modified, even the main game gui. Without recompiling.
Just extract locate modify/add test.
But.
To figure that out,
and how...
you had to actually
Figure it out.
Yourself.
Because the idtech documentation for each of the things listed above was 2 pages of text or less.
None of it is hard to do, all of it is completely effective,
but the documentation is non existent,
and people can drag and drop into UDK or Valve and have gigabytes of developer documentation.
This is the key for us slim and trim linux geeks though.
A UDK or Valve Source game takes almost 1G of space for the engine and its libraries.
That's before you've added a single model, gui, or map.
In comparison.
The main executeable of Doom3/Quake4/Prey is about 32 megs. In Windows, Linux, Mac, and yes even Android, the Doom 3 executeable will run and then you have the game assets and definitions in the folders or .pk4 files that it pulls from.
But the core engine is 32 megs.
And it does the normal maps, bumps, shadows, volumetrics, etc.
It can be configured to use opengl 4 shader level 2+
or it can fall-back or be set
to run perfectly fine with open gl 1.3
So unlike UDK or Valve
it will run on a NON-SHADER LEVEL 2 card.
And it will run well, because it doesn't have bloat.
Up until now only a few people have taken up the shadowy torch of Doom.
There was a guy named Timo who took up the gpl code and cleaned it up a bit.
Then there was a fork called iodoom3,
but that sort of dissolved into The Dark Mod,
which runs on Linux but is not able to run Doom3, Quake 4, or Prey, and has completely different game mechanics than those games as it is based on Thief. It is not lit the same either. And its 2G. It doesn't like the celery. Too many npc's in the mission areas. It chugs on small demo levels. Like, 12 frames per second. I like the work they did, but it's too far from where I am going with the Vision.
RBDoom is good, but only works for shader level 2 cards. If it get upgraded with a OGL 1.3 dx9 fallback or option set I may fork it instead of Dhewm.
But it doesn't so at the moment I decided in my Vision that I needed a wider audience for the great visualizations and games that I want to make. Shader level 1 OGL 1.3 is fine and that's what I am going to stick to.
Because of that kid in the boonies who dragged a piece of crap home and is trying to play a simple game on ancient hardware.
So we come to Dhem 3 and RBdoom which will compile.
Which I proclaim a “fork” of probably Dhem unless like I said I can get the Rbdoom to be less strict about cards and files. I thinks its based on msvc so, unlike Dhewm its not totally open source and is using windows dlls.
They are 64 bit cross compileable and linked up to the standard open souce libs, headers, and codecs in use for linux.
Neither are working for me yet.
I have some problems with the g++ compiler setup in Mintx64.
But I will get it.
I believe my vision is almost attainable. I have, after 10 years, begun to understand how its laid out and what all the main variables and declarations represent.
I had to give it a name. My fork is called “The Shadow Game Engine”.

Dhem 3 or RBdoom, one I will fork and my intentions for the fork are to follow in the Project Definition Document outlined below.
I do not know Software Project Management systems in use like git. I don't understand them because I am not a programmer in a group of programmers, I am a single evolved homo sapien with some lame-ass cpu's that they are bashing and hooting on.
I did study Project Management though.
You start a project like this
with a plan...
A Project Definition Document.
The Plan for the Christuus Gnosis Grand Linux Gaming Vision in which the Shadow Game Engine emerges as a separate FORK unto itself:
1. Cd/serial Check/pk4 check/dll check removal.
The games are on GOG for 6 bux. These checks are impediments to modding and use and aren't necessary anymore. They also take cpu cycles. If the engine sees the files it needs to run the gui and load up it should just do so and get on with it immediately.
2. I would eventually like to have the main executeable able to play the 3 commercial games as well as the Shadow Game Engine “Base Asset Set”. I was thinking a single base engine with a separate library file for each game that you want to work with in the engine that has a map conversion, entity or syntax conversion, blah blah. The engine should be able to display any 3d scene based on additive or subtractive BSP/enclosed space methodologies. Most games, even non idtech ones can display at blistering non emulative speeds with the engine. Perhaps their orientation is different or unit system or something, but when they ask the engine to draw the scene they all give out a similiar kind of data that can be piped to the engine through a quick reference library.
3. The Shadow Game Engine “Base Asset Set” which would be similiar to the basic udk/templates for a room/landscape etc. Including a base main gui and base map/hands/npc/gun/items.
I would also like to have some whimsical templates, like nintendo-ish 3D platformer or something with big mushrooms and little creatures.
=P

A cleaned up set of localization strings as well, since the idtech ones are all over the place. And a method of creating and modifying the the localization table of the current base on the fly for games that need to label a lot of things, like adventures with inventories.
The localization strings or similiar string tables are fast ways to change whole sets of dialogue options in a conversation system.
4. Multiplayer co-operative mode.
5. Co-operative or single player RPG asset set/database configuration.
I want to add the game mechanics that you can see in Project EDEN, The Thing or Half – Life: Decay, or even the flat multi npc intricacies of Baldurs Gate and Planescape.
Where the player has to take control of different members of the party and the other members follow or stay.
Or where certain characters have to be used to do things because they have the skills tools or abilities..
The engine has good ai.
I was considering the integration of Mysql or sqlite into the game engine to allow relational database sets and multi-user relational database sets instead of simple flat files.
The original games were basically military simulations that trickled down into the entertainment media after newer tech was adopted, they didn't need extensive database management of items/quests/skills/etc that an RPG or adventure needs.
With a relational database, when a player lets say, finds a pda or downloads stuff from a computer it can actually be a whole set of files, ebooks, etc.
We think of books and text as aids in our FPS twitchlust, but I would like to make it so that books and pda's and files on pda's were actually readable and part of the story or mystery. There are people who would read 200 project gutenberg text files of books if each book was easily readable once found and the information was central to their understanding the mystery or plot.
Emails, and text files, the detective aspect of going through things to advance knowledge, the conceptualization of needing to find specific books to learn specific things and gain specific abilities. Or diagrams, or reference manuals. But make them real, not just a paragraph representing a book, but the book itself and emails referencing sections.
You need to get the nuclear particle accelerator smashing something to stop the alien invasion?
You should actually have to find the 9 physics/electrics/magnetics books. And if you look through them
They are real books, 300+ pages long with proper inline imgs.
Instead of just simple snippets to advance a plot, a desk, bookshelf, or computer can have mp3's, zipped files with different formats, videos, ebooks, emails, docs, essays, etc.
Instead of spend 30 seconds zipping through a room after mowing down the inhabitants we could spend an hour or so in a room looking though stuff, and enjoying a small room with really detailed textures and layout.
I know this concept may be hard for some people.
I actually like slow games where you walk around and think like Myst, and games like Planescape and Baldur's gate that you can play with absolutely no sound and never touching your keyboard except to hit the spacebar.
Just clicking, exploring and reading.
In RealMyst3D there were only the 7 ages.
I spent 3 months on that.
Just wandering around each little island looking for clues
MILLIONS of people played it
Not a single gun
Games where you have to take NOTES.
Not auto generated notes, but you actually had to scribble things,
make a good open journal with personal notes along with the quest ones.
I don't think people have stopped wanting that, the dazzle of supergraphics is gone and content is actually beginning to resurface. I hope.
The 3d pipeline can give us so much more realism to make these stories breathe, having the player view of the hands, and maybe tools is a step up from the armless adventurer or the pixel hunt of previous adventure games, but we can do more with it and empower others to do the same with good flexible basics to start with. But once we accomplish that, maybe we can focus on some stories instead of deathmatch twitchfests and nuclear survivor mad max epics(both of which I enjoy).
Moving the core of my own game designs from a military focus and into an explorational one is a big thing for me, as a concentrated part of my Scope.
I don't intend to remove anything, but my own design focus is away from combat oriented game mechanics, and more aimed at cerebral stimulation and advanced thought.
Games can be intricate and interesting. Mostly they are eye candy these days. A balance would be good.
6. Blender integration – Tweaking the blender -> idtech pipeline, and tweaking the blender interface to make a more game or game animation focused mode for it. It might even be possible to use Shadow as the blender game engine runtime, as in Gamekit.
Blender out of the box is too render-oriented, which is not useful in any way for MD5 modelling/boning or BSP Map block editing. But it CAN BE. It has huge amounts of wasted screenspace in its interface, and everything is thrown in with the kitchen sink and the baby too. Its as complex as Maya or Softimage and more obscure.
But,
You can create empty interfaces and pass custom commands to Blender
All commands in Blender are python strings and updating/changing variables by passing them to the python interpreter.
So blend can be made like a minimalist modeler such as Silo or Lightwave Modeler. With a more limited and select set of tools for modeling that has a subdivision mode similiar to the idtech built in modes and displays all the textures as the engine would.
Have a separate toolset/window/layer mode for texturing that leaves out non game engine layers and focuses on the things necessary to texture a model for the engine.
Remove all the extra things from the interface and create discrete focused ones for this task. Create a new interface if necessary.
When I used to box-model spaceships in Lightwave I basically used approximately 12 tools total and 90% of my work was with 3 tools and the spatial manipulation of points/polys. I don't need to create all the primitives of standard blender and don't need any of the render tools.
They don't need to be removed, Blender is not even 50 megs, but it needs a specialized interface to become useable in a game production environment pipeline for this task and with this engine and system.
Blender has a way of adding other script libraries as well which you can see in the gamekit momo blend
I really do believe that Shadow could be used as Gamekit and even somehow I think it might be possible to plug the idtech engine into the 3D view. To see the normal mapping/bump, additive, specular changed on the fly, but a small engine render window like FPrime would work.
Have a specific layout and toolset for boning and simple animations rooted to an origin MD5 system for characters.
I think that Blender has a texture painting mode that could be tweaked into allowing bump/nmapping painting and a bodypaint style or simplified 3D-Coat workflow.
It might be possible to pull the blender into the engine like the editor, or pull the editor to a separate .exe and merge it into a modified blender.
Also, making an editor style mode for manipulating textured BSP blocks, a way of placing static meshes/ lights/entities and seeing them in Blender as in the editor.
Can Blender be made to open a Map completely and make one?
Without fudging the display of statics and entities?
MD5 is very similiar to LWO.

For those of you who are interested in using blender with MD5
This is the best exporter/importer I have found that works with 2.6 and 2.7, which have a different python than 2.5 and under.

http://sourceforge.net/projects/blenderbitsbobs/files/
http://sourceforge.net/projects/blenderbitsbobs/files/io_scene_md5.zip/download

I would like to make a spacebar plugin like maya, but game specific, where it would give access to common prefab sets, views, tools, entities, settings and items.
7. Adding support for more 3D formats: OBJ specifically, along with smoothing groups and multiple uv sets.
I would really like 3D-Coat and zbrush integration into the pipeline, perhaps through the LWO format which is directly translateable into MD5. Adding support for silo would broaden the user base as it is used a lot for base modelling in production.
Unfortunately, Silo can make bad meshes sometimes. They look great, but the Uv goes off and needs fine tuning.
8. Absolutely basic opengl mode that will work on anything. Option for advanced gl and fx.
Think of that kid somewhere who managed to get a computer home. Even if they don't have a hard drive, if they have a key and a live distro with Shadow they can ignore the shittiness and tell their story.
We empower them to communicate by giving them an adequate toolset for communication.
9. Making the editor WORK.
Currently it was built with Micro$hit widgets. I would like to switch it to gtk or qt OR I believe that it is possible with Carmack's windowing system to build the gui of the editor completely within the gui system off the engine, so it could actually be a SKINNABLE interface.
It should be capable of displaying entities as meshes with idles. The original Hammer for half life 1 could in xp.
Honestly, with a small room with a couple items and a 128 meg card the editor should be able to run in render mode in the viewport. On linux. With an NPC idle animation. It should do a small cinematic with 3 characters moving talking, and not much flashiness, on almost anything. Lets start from there instead of over the top cinematics like action flicks.
The Half life one and DX1 editors could show a dozen monsters and npc's with basic lighting on a P4. So can this engine, we just need to see the usefullness of that as a broader player/modder base.
People will make levels that are smaller and tighter if necessary. Just because idtech could make stuff a couple miles long with hundreds of monsters doesn't mean we need to for our game stories.
Proper VIS blocking and BSP construction let's the engine do very complex scenes with minimal hardware if shaders are used frugally and textures are compressed right. Simply making sure that any surface is only hit by 2 lights max can yield excellent framerates.
The editor needs to be simplified and modularized for many projects, like the right click menu, it needs to be more flexibly organizable.
Certain basic things like navigation in the editor need an optional mode that emulates other 3D programs really.
The Alt key is used a lot in 3D and it needs to be unmapped in most linux systems from the "move window" command.
10. Adjust GUI editor to allow the importing of HTML with basic javascipt modules. Button interfaces with hover overs and other imagemapping techniques can all go zoom into a gui as long as the assets are rooted under base. Then we could use web design techniques and applications to create gui bases swiftly without resorting to proprietary flash.
11. Quick subdivision and basic profile occlusion. I don't know if this can be done. I certainly can't do the math. The engine is gorgeous, BUT, there are no razor sharp lines anywhere in the world. Every edge other than a knife is rounded in some way. Even a knife is. It needs fixing. The MD5 has a normal and bump applied in sync with the color/ specular texture, this should be used for a simple edge occlusion on the md5s combined with a quick form of sudivision so the organics don't have polygon profiles and edges. There are organic piles with polyline glints, that is so wrong and if you don't go for a separate occlusion map it is doable, I believe, by making all edges into a superquick sub-d curve with an exge extrusion based on the nmap and the bump map.
Perhaps I am understating the math but I believe this can be accomplished. Like FAST, without LAG. No Razor edges. Corners of rooms in reality don't even have razor edges, how do we fix corner bsp blocks creating pure sharp edges, it has to become a global setting in the gl render. All corners have a slight curvature, layers of paint or edgings. The cubes need edge embellishing to stop being cubes.
Here are two pictures of the bad thing I am refering too.:
Must get pics.
12. Adjustable content paths. If the same executeable on linux can play any of the 3 commercial games and separate games modded off the base Shadow Game Template base folders, then the executeable should actually be able to sit by itself with a couple of libraries and point with a gui to any mounted folder on a windows mac or linux partition that has the files, either extracted or in pk4/zip format.
13. It should load all previous Idtech formats. So all the bots and skins and animations and character meshes and levels of Quake 1-3 will load and play.
Those entities should be available for modders to add to their own levels. With the new engine, the original skins of quake 1-3 could have an extra normal, bump, specular and additive map applied with multiple uv sets if necessary.
I don't mean converting the old levels, I mean making the engine just read them and run them, an on the fly translation. A Q1 Grunt or whatever those leaping stabby monsters were, with a quadrupled texture at 32bit png, and a normal map applied would actually look good.
All the levels would look great and there are already hi def texture mods for these games.
14. I would like to have adapters for System Shock 2, Deus Ex 1, and Half life 1. Each of these engines is less than 20 meg or even 10. The levels are small. The Shadow Game Engine based on Idtech4 can be adjusted to accomodate the other systems. The RPG inventory elements of these two games needs to be incorporated into the Shadow game engine as a template anyway, with skills/nan/aug/mod/tech trees. I also really would like to use the engine on Morrowind ala OpenMorrowind and oblivion as well as these games have very larger modder bases and work on low end machines.
If you add support for the original unreal engine models and maps then there are a couple hundred monsters that were modified by people for the original UT. That's a massive set of base assets ppl can use as npc's or enemy AI..
Imagine playing System Shock 2, with normal mapped textures, proper lighting and shadows, normal mapped monsters, and you could make a swap option that would swap in various doom monsters in place of the SS2 ones, since they are zombies mostly too. Such a cool idea. The same levels, the same meshes, the same objectives and everything, inventory, people will actually be interested in adding their asset packs. There are at least 3 major modders who have high res System Shock 2 models in maya form with normal mapping. Export them to MD5 and plug them in.
If I could get it to run RealMyst3D I would faint.
Deus Ex and System Shock 2 are two prime examples of fantastic games with great storylines that you could not get a young person today to play because of the graphics and "every monster looks the same" problem.
The Shadow engine could simply play the original games with an added set of normal and higher res texture maps and a game that looks blocky would suddenly have detail and proper shadows without modifying the original game files unless its to make an out of view no vis box that follows the character outside in a large map, but even so, with the polycounts of these games they should play fine with some simple fixes.
These games had such small levels they would not be a problem to display and even swap out other monsters in other formats and ai at the same spawn points.
I really need to add a plug about Deus Ex 2.
Invisible War was really an excellent sequel to DX.
It is really well laid out, with lots of cool reuse of locations.
The weapons, mods, bots, are great. It can be played in many ways.
But the engine it was released with is very flat, and so are its shadows. The assets of the game itself have normal maps but it doesn't really show. Just swapping it into a new engine with better shadows and a texture pack would make it and DX1 playable for a new generation used to built in xbox normal mapping.
Why remake a good thing?
It's built well,
Just give it a new engine!!
15. Include all libraries and dependencies for play in the base package.
Every dependency. Keep them in the executeable system folder.
16. A separate Shadow Game Engine Dev pack. The graphic designer type modders can go nutz out of the gate, but for the ones that want to program the engine I would like to eventually create an absolutely complete game compiling package. Include an IDE and the g++ compiler and ALL DEV headers. Do not install them in /usr/whatever install them in the SRC folder and have everything linked inside the SRC folder. One script or gui should give you access to open the IDE and compile. Whether the user has their machine setup should be irrelevant. Everything should be there under source, IDE/Compiler/baselibs/core startup assets for the base gui's and a simple 20 ft cube map with the player hands and a light. It should make both 32 and 64 bit lin .exe's from either architecture. Without having to apt get anything. Extract peruse compile and run without a single E.T. phone home call. A second package will later appear, much larger, that cross compiles win 32/64, Lin 32/64, Mac OSX, Iphone compatible, and Android, from one interface, in a batch.
The assets should work in all the executeables with a batch DDS convert of large base TGA/PNG files for older machines or smaller devices.
17. EPS, SVG and AI support. Guis can be really small and beautifully scale at all resolutions.
Eps files can have embedded text and image layers. I think .ai libs exist for linux too already. They are versatile formats. Increase PNG/DDS support. DDS convert gui embedded. Inkscape native format would actually be usefull too. But EPS really is the vector standard. Objects inside an eps can be animated like layers.
18. Open GL and HTML in the gui editor and some fixing up of the gui editor.
OOPs.
As I look at this I realize I can do that already, I just need to build a gui to place and rotate, but if you look at the main menu of D3 the sphere is ogl, and I was able to replace it with another object spinning slowly.
Normal mapped lighting of textures in the gui.
If gui materials can have normal maps applied then the interface on the gui can have depth and shade and textural detail.
In Prey, some of the gui layers float in space out and up. make controls for spacial positioning/scale/rot/opacity in Z and allow these fields to animate. Make animation controls in the gui editor for base timelines.
Have lights in the gui editor
HTML import with jscript so that light effects can be tested as the gui's are lit within the game environment. So every GUI doesn't have to glow emmisively it can be lit with direct lights as a material. And have Jscript activity like rollover states. Easily made in a wsywig editor or web-ready button making rollover script like we've done for years.
I actually would like to really focus on a linux built in alternative to Flash. I think the gui editor can have a simple timeline system built in and a lot of repetitive actions and things that are constantly used can be grouped into better toolsets and organization.
19. Inventory/Tech/skill/ability/RPG/Adventure templates. An alliance/faction/group system. A conversation system with simple conversation tree interface.
Examples are Deus Ex, Shadowrunner, Fallout, System Shock 2, Morrowind...
I would like to have different view mode templates like The Deus Ex Series and the Splinter Cell series, as well as a vision mode template like the Spiritwalk in Prey which alters map layout. Another example of that is Soul Reaver 2. OMG SR2 would look so great in idtech 4. Wow. So nice...
Vehicle templates with Vehicle inventory.
Lot's of vehicles. A vehicle modding base set for modders. Gui for the mechanics and custom torque/tension/etc definitions.
20. Adapt a 3rd person mode for the engine, see if games like Generals or Empire Earth or Neverwinter Nights will be playable without moddifying their original files, just maybe adding texture packs with Nmaps.
Try going:
God
then:
Noclip
at the prompt (crtl-alt-~)
in doom 3 prey or quake 4 after you have a level loaded
and fly around.
See?
Its totally doable.
Completely.
21. More vid/aud codec support. Allow various mkv mp4 whatever to play in gui's and pda's.
The designer will compress them.
22. Allow the user to choose a separate music folder for each game or profile, so when they play a game they have certain tracks they like, or perhaps allow them to associate a standard music playlist. People listen to music as they play. Controls in the game for adjusting user audio. Like GTA with its radio stations and mp3 folder.
24. Easy setup of multiplayer servers. Completely open. Anyone with the server password or right mac address can connect. Let everyone with the same packs play together. make it really easy for home users to play multiplayer or cooperative adventure missions. Ipods playing with androids playing with lin and win boxes and macs. Everybody connected.
25. Devise a prefab methodology for the Shadow Game Engine, and organize monsters/npc's/texture/prefab packs in a complete .pkg/pk4/zip. So if you open a monster pak all the files regarding its material, textures, images, mesh, anims, ai, etc. are all in one spot. Like vmt or upk but straight zip no encryption.
26. Make an interface for Renderbump. Make one for loading config profiles too and converting DDS or importing models. The engine does all these things with scripts so a gui can be made easily.
27. Make a proper model viewer that shows all the textures on a model and lets you test additive states too. Make it really fast to view the different anims. It shouldn't have to be set by hand, it should read the mat files and load everything like the game would and let you see the mats under different lighting.
29. Extract off, at some point, just the engine and physics without character things like AI, and create a screensaver module from the base engine that can camera fly through a small map or importable 3d file and display it with animated MD5 meshes and characters walking through it or animated. Everyone would use and mod the OGL Shadow screensavers.
They will be popular and ppl can show off with them.
30. A nice camera animation gui system to create and test scripted sequences. Some form of scripted sequence editor.
Better than matinee. Just using the mouse and quick commands complex scenes can be made.
The engine can support DOF.
The Shadow Game Engine templates and any useable bots can be used for machinima.
Free linux machinima using a game that actually works.
The camera anim files can be generated from within the editor interface, idtech used maya export anims for their convenience, but it doesn't take much to add timelined camera states and curves. The lighting in the engine supports very moody cinematics.
You can read camera and cin anim files BTW. They are just position and orientation coordinates in a flat table.
31. A multiple head at a time facial gesture, look at, talk editor with timeline and audio clips. Slim trim small. A separate app if necessary, but of course connectable to the cinematics or scripted map sequences. Load 4 heads and an audio clip of 4 ppl talking, setup the conversation gesture script. Give the sequence trigger a label and load it into a map, and the heads are on the ppl. Perhaps whole body gestures too, but a face one is pretty important.
Phonemes and phoneme analysis have been around a long time. Animators have had mouth shape sets on file for a very long time.
32. A simple bone animator or a set of rigs for blender and a simplified blender interface or a decent set of basic reuseable character bone/base mesh/base anim templates.
MakeHuman pipeline integration. MH can create character meshes with an MD5 bone system already mapped. Tweak the MH templates and the texture exports to make a base MD5 mesh and have a base movement set of MD5 anims that can be applied to all MH meshes of roughly the same size of person. Like a small, medium large set.
The MH clothing system isn't fully implemented yet, but it has a lot of possibility for quick NPC or player character generation. The meshes do render very well in the idtech4 engine with material tweaking.
The MH export could possibly be adjusted (since it is also python) to make head torso leg chopped MD5's since the engine will work with a single MD5 with bones or a head torso leg set with separate MD5's linked by an entity definition file or section within a decl script(declaration file of a number of entities/mats/ai).
33. TTF and PS Font Support. True Type and Postscript have been around forever. Let's please use them. It's also a way to get a set of glyphs or vector icons into a program, you just make a font set with the icons. Subtitles, conversations, objectives, with scaleable vector text.
Allow attaching MATERIALS, not just colours to text strings and vector imported gui layers. Normal mapped materials with additive vector rollover textures anyone?
Scalable 3d text in designer fonts floating translucently in 3d space and manipulable with bone or mover or interactive gui technologies?

How about multitexture materials with nmapping applied separately to fill and stroke?
34. A basic ogl material def previewer editor.
Materials are mostly a set of images in layers with perhaps a function trigger for luminosity/colour/or swap texture, but the thing is it is hard to browse the textures because you can't see the normal/bump/spec and transparency mask layers. Its useful for checking additive on stacked uv sets too, but a model preview is best for those.
35.
I know this will sound a bit too far at first,
BUT, I believe, Honestly,


I believe
that the Shadow Game Engine
could eventually, itself,
be THE Linux Window Manager.
Instead of a desktop picture, have a room or landscape in full normal mapped lit 3d open gl
navigating left or right spins you around.
select objects that represent files or applications, the open of the window can be an MD5 animated bone mesh.
so an example,
Lets say a Steampunk one.
The linux kernel loads,
Then X
Then the engine
the desktop is a room, like a boiler room, with gadgets and screens. There is a dangling electro plug which follows the mouse movement. You click on an object that represents the web viewer. The electro plug MD5 plugs into the steampunk monitor which triggers and opens quickly zooming out with normal mapped textured bone animated quickness.

Instead of the Microsnot or an Nix emulation topbar, we have the gui material on the MD5 displaying our browser, and we can just arrow key or mouse around to see another app.
a shortcut key could let us navigate from where we are viewing to a window or door and we could go to a different "room" or workspace and see what other things are "running".
Instead of watching the little folders fly so slowly back and forth, we occasionally switch from our document or whatever to see if the machine in the "boiler room" is still "pumping" and how much fluid is left to fill the container.
We don't need the widgets of windows. We can make sure there are minimize/close/quit/kill functions within gui standards. GTK and QT are actually window manager transparent.
Completely 3D Themes. Navigateable.
Want the sound lower, grab your current work and move away from the sound player in the gui.
Environmental 3D audio within the shell of the windowing system. Spatial positioning of datablocks. Animated meshes with textures, glows, normal maps, representing applications! With an activated idle animation as you center them on your view. Or everything is moving and pumping constantly and when you center something it has a "selected" animation that's different.
A different theme:
Surrounded by greek statues, all your research materials on shelves or represented by the statues.
Hanging planes of text or images or appz anywhere around the 3d space with machines/objects/ they are mapped onto or projected from or hanging from?
Lets say you have a Scientist character, he's holding the window of libre office writer you are using, when you haven't typed for a while his fingers twiddle at the sides if you aren't maximized. When you grab the window borders his hands do the grip ani, and he stays rooted while you reposition the window, only his hands and arms move then settle.
When you look at the main gui and windows systems in linux you can see its taking up about 300+megs with the compiz and stuff.
Eliminate all of it.
You just need the kernel, X, Mesa, a few base dependencies and drivers, and the engine, plus maybe some program widget systems like GTK, or QT not running as services but available. You will only hit 200 megs of System Ram.
It will run on almost anything and display almost anything
The engine can handle the display of almost anything you give it an I/O for, the windows of our text/video workspaces can be any flat surface, we don't really need the paradigm of the flat desktop at all anymore. Gparted, Mozilla, Blender, whatever can run windowed in the 3d space attached to an md5. Themes can have exploratory and game aspects to them outside of operating conventions of our applications and documents.
Creepy people can make creepy 3D rooms for their desktops with skulls and dusty (with ogl dust particles!) books and creepy candles.
Kids eventually creating their own rooms inside the widescreen, their own themes and drawers and "toys" that do things.
Plant ppl that use computers can have leaves grow and blossom up the window edges. Why have a scroll bar? Have a little spider you drag down to scroll and when you let it go to type again it boings up on its thread.
The desktop is a flat box. it doesn't need to be. It can have interior 3d space. There dosn't have to be a taskbar, different objects represent progs, we can have different "huds" or none, we can hafe objects with gui materials that show information.
Want to know the time? use the hotkey to pull out of your gimp, as you pull back you see the easel that represents gimp, with your work on its gui, waiting, you turn around the little 3d village square to look at the clock or put your easel so you can see the clock, the sky and sun conditions are set according to weather information, but you see them as 3d simulations of the current weather instead of looking at a little applet.
Applications as doors you walk into and there is a fullscreen room of that application. Leave the app and are back in the base OS "room" or "control chair".
Or how about a William Gibson one.
Your cozy room or den, instead of clicking an icon of libre office writer, you go over to the typewriter and the action of putting a new page in or taking one out and putting it in a file or drawer or pile becomes an MD5 player hand first person anim. Complete with keys punching the right strokes? And little hammers smacking up to dent the page, which is a textured paper, lit with open gl, and a cigar in the ashtray making some ambient non smelly smoke?

If it follows standard linux HOME profiles, then desktop links and program links can auto install MD5 icons in different 3D themes.
MD5's can be REALLY small. Its the textures that are big, but on an optimized texture, most visible sections are less than 256 pixels of the screen at any time.

Try this on.
A multi-user operating system (linux) and a multiuser 3d OS gui.
The engine is multiplayer.
instead of a Desktop
we have a map
multpile people can use different applications in the same multi0player/user space.
3 people using 3 different gimps
when you look up from your work and look around in the map/gui

you can see the other person's avatar or player 3rd view mesh.

I guess we just need to get the hot hacker chick from Snow Crash to build us an auto phoneme system to increase the immersion...

We could create the Black Sun!
Common walking strips and "hangouts"
shared multimedia experience in a multi user os...
If you can't picture it well,
try more booze or drugs.
It helps.
36.
Landscapes the UT way are not my thing.
The big problems with most landscape editors are the absolute concavity of a heightmap based image and the visible tiling of textures.
The idtech4 engine has excellent collision mapping on standard imported polygon meshes with low point density.
If you used a similiar mesh in UT you would fall through it because a poly is larger than the character's collision box.
I think people are fine without a landscape editor.
I use the free version of L3DT to generate a terrain,
Then use the heightmap in Blender or MAX or LW to generate a clean optimized displacement mesh.
The thing that would be good is a landscape texture chopper that chops it into 256 pixel bits or smaller, and a method of mapping the multiple small textures on the larger texture mesh.
The reason for this is that you need the mip-mapping on the terrain with normal map mipmapping. If the terrain is one mesh with many small texture layer sets of tex/nm/hm/specm then the normal maps and color will have mip maps in dds format that allow the detail of close parts of the terrain to be sharp and non visible/blocked terrain segments don't load until the character gets to them.
37.
Can the MD5 format be adjusted to allow Nurbs?
A character with a low number of vertices made of nurbs is much smoother than a poly one. With normal mapping on top of nurbs animated skeletal meshes would be much smoother looking on heads and edge curvatures, and might be faster computationally than an on the fly sub-d on polys.


--------------------------
If you do it first you really don't have to call it The Shadow.
But keep it GPL so we can all start building and stop paying out for SDK's! We can make a FREE framework, and people can profit by packing it with their own content.
No one would ever have to worry about the legal stuff.
As long as they have the engine and toolsets
They can mod the templates and sell their games or give out demos.
Without any worrying. No royalties. No agreements. Just make your game and find a way to distribute it.
------
WIP - There's more I'm adding to this yet
If you notice weird spelling mistakes,
its cause the keyboard has no letters on it anymore
and I'm a stare-at-the-keyboard typist!
I am on my way I guess