Game Development Community

dev|Pro Game Development Curriculum

Plan for Gonzo T. Clown

by Gonzo T. Clown · 11/18/2004 (8:56 am) · 29 comments

Ok, things are close enough now that I can finally start talking about this to the GG community to make sure my direction is sound and all considerations are being covered.

For quite a while now I have been developing what is at this time titled the "Super Starter Pack" os SSP for short. This "Pack" however is much different than the others in lots of ways and similar in some. The best way to describe it is to say that it is a complete replacement for the Example scripts that you get with the SDK and the Demo scripts that are publicly available. In other words, if you wanted to make a game you could either start with the example scripts and go from there, or you could use this pack to get you started. So what are the differences? Well, honestly, it would take me quite a few plans to fully explain in detail, so I'm going to try and give a feel for what it is and what it's value to you will be.


With all respects to GG and the fantastic products they supply IMO the example scripting more resembles a flea market packed with a bunch of neat stuff than it does a full fledged gaming starter. So I decided it was time to bring the scripts into the modern day with a complete overhaul and redesign that will do more justice to what TGE really is and what it can do for you. With that said, lets examine some of what it will feature.


First off, EVERY .cs file has been formatted neatly to make it uniform and easy to read. They are commented line by line to make them easy to follow and manipulate. An example of what I'm talking about can be seen in the files I supplied for the Complete Voting System . IMO this will help tremendously with new people who are trying to learn how to script, and even experienced coders can use the examples from areas they are not so experienced with. It will also help you to understand what effects your code changes will have on other parts of the function or even other functions that are involved with that particular process.


Next we have cleanup. Every file from the Common, Demo, Starter Racing, Starter FPS, has been combined into a simplified directory structure that allows all of them to exist at once in the same place. No more duplicated scripts and pathway problems to deal with, nor -mod parameters to pass to the executable. The server determines which game you are playing based on the map you load and adjusts itself accordingly. More about this feature will be discussed later. Suffice it to say the uniform directory structure will make it much easier to navigate your way around the files and make changes.


NO MORE EXEC!!! how many of you are familiar with this?

exec("./scripts/audioProfiles.cs");

   // Load up the Game GUIs
   exec("./ui/defaultGameProfiles.cs");
   exec("./ui/PlayGui.gui");
   exec("./ui/ChatHud.gui");
   exec("./ui/playerList.gui");

   // Load up the shell GUIs
   exec("./ui/mainMenuGui.gui");
   exec("./ui/QuitGui.gui");
   exec("./ui/aboutDlg.gui");
   exec("./ui/startMissionGui.gui");
   exec("./ui/joinServerGui.gui");
   exec("./ui/loadingGui.gui");
   exec("./ui/endGameGui.gui");
   exec("./ui/optionsDlg.gui");
   exec("./ui/remapDlg.gui");
   exec("./ui/StartupGui.gui");
   exec("./ui/ClientVote.cs");
   
   exec("./DemoLoadTwo.cs");
   // Client scripts
   exec("./scripts/client.cs");
   exec("./scripts/game.cs");
   exec("./scripts/missionDownload.cs");
   exec("./scripts/serverConnection.cs");
   exec("./scripts/playerList.cs");
   exec("./scripts/loadingGui.cs");
   exec("./scripts/optionsDlg.cs");
   exec("./scripts/chatHud.cs");
   exec("./scripts/messageHud.cs");
   exec("./scripts/playGui.cs");
   exec("./scripts/centerPrint.cs");

   // Default player key bindings
   exec("./scripts/default.bind.cs");
   exec("./config.cs");


Well in the SSP it looks like this....


No, that's not a typo, it's the truth. The server and client system execs have been precisely redesigned so that ONLY the exact scripts you need will be exec'ed at startup and then depending on if you are a Client, Client-Server, or dedicated server it will then load the appropriate scripts needed to perform those duties. Any new files you add will also be loaded without you having to add any "exec("./pathTo/myScript.cs");" lines to your game to get it into the game. It is completely plug and play now so you can drop a gui into the guis folder or a new script into the proper server or client script folder and it will be exec'ed when needed. It just cant get any easier than that. This also cures the problems with scripts being exec'ed out of order and causing datablock definition errors.


More Cleanup: While formatting and commenting the code it was also greatly debugged, simplified, and vastly improved for efficiency and operational features. Each feature makes maximum use of it's capabilities instead of just getting them into the game for you. And anywhere there was waste, bad logic, or code that just didn't make sense it was rewritten to maximize it's potential and minimize it's use of CPU cycles. This feature alone will save you an incredible amount of development time in making things work or researching how to make them work. Combined with the code commenting you should have no troubles making things work or even modifying them to work differently. And for TorqueScript newbies (and even experienced coders) it will be a great learning tool for proper TS syntax and usage as well as smooth code flow design.



Modular expansion(plugins): Thanks to the new design, extra features like the Complete Voting System can be dropped into the proper folders and they will work automatically. Likewise, if you decided you didn't want to allow votes you would simply remove those scripts and it would be gone. You won't have to worry about what you just broke or what you need to change to make it work right. Also, A lot of the new features that will come with the SSP can just as easily be removed if they are not needed without worrying about breaking stuff.


Self Management: Parts of the game may or may not be needed depending on your game or situation, so most of them self manage to make life easy for you. The AiManager for example. Not only has the AiManager recieved a whole new lease on life, it completely takes care of itself and your AI. Whenever a map is loaded, a new AiManager is created, the AiManager then checks to see if it is even needed. If not it will delete itself, and if needed it will begin it's duty of initializing and managing your AI. Since the AiManager is completely enabled to care for itself and your AI all you will need to do is add your AI choices to your maps and the AiManager will take it from there. At this time there are 4 bot types that are supported, and more in planning that can be "plugged in" when they are done. The "Director"(new feature) manages camera systems in much the same fashion. If you intend on using pathed cameras, or the included "SequenceCams"(new feature), that are included with the SSP, you will only need to place them in your mission and the "Director" will initialize and manage those cameras. The director will also
be responsible for controlling the camera views for an upcoming addition that will enable matches(multi-player games) to be viewed without being entered (Spectators).


Better content control: An incredible amount of effort has been and is being put into making it easier to manage and develop your content. A special content editor has been built in to allow you to create Lights, Particles, emitters, explosions, and audio datablocks. You can then alter those datablocks directly in real time to get them to look or do exactly what you want, and then finally you will simply click on the save button to have the content editor export the datablock to the proper server directory for usage in your game. Unlike the stock TGE which currently only saves in this format....

new fxLightData("PurpleHalo")
{
};

which would then require you to manually change the "new" to "datablock" the SSP has been upgraded to allow the content editor(or yourself) the option to save into this format...

datablock  fxLightData("PurpleHalo")
{
};

which will work automatically for you with no intervention at all. Also TGE was upgraded to automatically save the object name in quotes(not currently done) so that you can use spaces in names without syntax errors. Just another in a HUGE list of time saving improvements and features. The content editor can save you a tremendous amount of time developing or tweaking your content because it eliminates a lot of waste while enabling a ton of new abilities to the end user.


I could go on for days about what all you will get with the pack, but you can rest assured that the value of it in time saved, content provided, new features enabled, and even it's learning value will be second to none.


Short FAQ:


Does it have AI that works?

Yes: Although it's not a full blown AI system using the latest A* algorithms and pathfinding techniques like you would find in a AI pack that was being designed solely for AI, it does have a very comprehensive AI system that allows you to simply drop AiSpawners into your maps with a few parameters filled in and the AiManager will take it from there. The included AI are ready to perfrom their tasks and to defend themselves by kicking your butt should you decide to assault one of them. They fight intelligently and deceptively as well as defensively when need be.


Who can use this pack?

Anyone. There will be both a public and licensed versions available. The public version will be a tremendous learning tool for people that are not TorqueScript familiar as well as a great help in prototyping a game because it will make development faster and easier in every way that really matters. The public version WILL be under the same publishing restrictions and limitations as the GG demo is but the licensed version will allow TGE owners to produce their game and content with full rights and no further obligations. If you are new to TGE then it would be a great way to get yourself started in a game, and even if your in full blown development already it can be a fantastic reference for example code to show you how to do something, or even to borrow from parts of the code to expand your own systems. The provided content can be used in your game as well so prototyping for TGE owners will be accelerated just as if you had purchased any of the other currently available content packs.



What kind of content are you talking about?

In addition to the new editors, new guis, new systems, pre-formed datablocks, and new features, you'll also get (among other things)boxes, barrels, guns, chairs, desks, flags, vehicles(flying and wheeled), player models, more artwork and textures, and more code base to start with. You'll also get several pre-coded game types such as Capture The flag, racing, Hunters, Objective, and DeathMatch, which will all manage themselves in a similar fashion to how the AiManager self manages. Overall you'll have a more complete package to start with than has ever been available before. TGE owners will also recieve a patch file and documentation for the engine upgrades neccesary to run the SSP. (Note: Most of the engine mods are simple drop in additions or small minor changes to accomidate extra functionality)


What about documentation?

As stated before, there is line by line documentation to help you follow the flow and functionality and there will be adaquate documentation to demonstrate how to use any of the systems and their parameters properly.


Will it be TSE compatible?

Yes, eventually. When the development is finished and finalized on TGE it will be ported to TSE. The SSP is currently being developed on version 1.3 and will be supported as well as recoded to incude any changes in future TGE releases that break the functionality. The greater portion of the SSP is script based and will not likely be severly impacted by general engine changes. However it will be maintained, upgraded, and fixed if need be to keep it up to date with any future TGE development.


Will I have to buy a TSE license also?

No, one purchase will cover both engines but there is NO GUARANTEE on a release date for a TSE version at this time.


What kind of pricing are we talking here?

At this time the planned release pricing will be $40 for the public version, and $50 for the Licensed version. The Licensed version includes the additional engine upgrades and the right to sell your game using any of the provided content. You will not be able to purchase a licensed version without a TGE license, and you will not be able to run the public version on the current TGE, so don't get any bright ideas, lol. Considering that almost a years worth of cleaning, rewritting and development have been involved in this, it is a tremendous value in respect to time versus dollars.


When is the release?

Unfortunately, all I can say definatively at this time is "Soon". It's under nearly 24/7 development at this time and will be ready when it's ready. It will not be forced out the door to make a deadline.


What about the future?

The SSP is about to complete it's first stage of development. It will be released for sale at that time. The second stage is still in development and at this time is slated to offer full support to a third party 3D moddeling program(currently being written) similar to Quark or Hammer. The goal is to allow you to develop your 3D content using SSP support to assist in script generation and then export it directly into your server directories with scripts intact. In simple terms, the plan is for you to be able to completely generate a game from start to finish in the SSP environment. More about this will be talked about when the details are final and the 3D editor is further along.


More details about the SSP will be released in the future, and all non-sensitive details can be discussed.

Gonzo
Page«First 1 2 Next»
#21
11/20/2004 (3:08 pm)
yeah I'm sure i could easily through down another ten for the license. I am just spending a little to much for my liking. I just bought the warsparrow going to get a DS and now this pops up. rachet and clank up your arms looks real good (It got a 10/10 in my game mag (GI)) I havn't spent much on video games for a real long while buying this much video game invintory at one time makes me feel a little wierd.
#22
11/21/2004 (12:13 am)
Quote:If I want to make a game that I want to be moddable, will I be able to leave your AI manager in my game for the end user to mod with? (assuming commercial purchase of your pack)


Not boring at all. In fact, it's a great question. Since GG sells the engine and gives away the scripts as a freebie and I'm doing the exact reverse of that, it could be confusing in some ways. But it's just straight line buisness all the way down the line.

You buy an engine from GG and you are allowed to make and sell a game.

You buy SSP from me and you are allowed to make and sell a game.

You sell your game and you make it moddable

You cannot give away the GG engine(and you didn't) and if the person using your game wants to SELL a game, they have to come buy an engine.

Now the logical assumption here is, you cannot give away the SSP, and if they want to SELL a game(that's based off of SSP code), they have to come buy the SSP just like you did, as well as the TGE(just as you did). But that's not something I can live with because to me it's just not quite right. Not for this pack anyway. I fully understand and support GG's restrictive license(restrictive as in DON'T SHARE). But I was a modder, loved doing it, and I understand exactly what a modder needs and what they usually end up getting. Since scripting is such an integral part of not only getting your game going, but modding as well, I just dont see any way to have a license that's as restrictive as the TGE engine has, and still allow you the freedom you need and especially the freedom your modders would absolutely have to have just to be able to start modding your game.


So, while I would certainly appreciate you not just handing out dozens of demo games that you whipped up with the full scripts intact to everyone that codes to show off your work or as a demo to get feedback with, it will NOT be a violation of the agreement to do so. And even though these could be ripped and spread within minutes to every corner of the globe for free, copied and interpreted, mimicked or whatever, ultimately everyone that had it would still be under the same agreement as you were. If they want to sell thier game, they gotta buy an SSP AND GG's engine, otherwise, I send Guido and the boys to go get my fair share of thier success, and they might even have GG knocking on their door, lol. That's really as far as I wan't to take the legal issue. I want to protect GG's source code by supplying a patch and instructions to TGE owners only, and supply a precompiled fully SSP compatible executable to the public. Another way to think of it would be, if your even touching SSP code, legally, you owe me money. As soon as you make a legal purchase, YOU are free to do anything you please with the SSP code, including give it away free to everyone you know if thats what you choose to do. So anyone that purchases the SSP is pretty well unrestricted the instant they click buy.


And I shouldn't have to say it, but it might as well be said, selling the SSP to anyone(at any price) to undercut the IP owner and make some bucks for yourself would be just as illegal as buying one of Tim Aste's packs, BraveTree, or the RTS pack, and selling any part of them to anyone else would be. That is theft, plain and simple. The only difference here is you have been given permission to GIVE it away. You cannot do that with any other pack that I'm aware of and IMO it should be plenty fair.


Now that we got that out of the way, may I take this opportunity to say that being a long time modder myself, I admittedly was generous with my time on this project in regards to modding. How can it be better? How can it be easier? How can it be more secure? Exactly how much of this do they really need to see to be able to mod? How much of it would it better off never touched? How can it be more dynamic, versitile, and even more user freindly, and still be the other things? How can it be all that and still be safe and easy? What would I want if I was going to mod this? What would set it above all the rest? Those are pretty much the exact questions I ran through my head over and over till I had answers I was satisfied with. And then, being happy with what I had, it was time to ask those tough questions.....


What if I don't like modders? What if I hate the fact those guys touch my code? What if I hated the fact that server owners had the nerve to modify my game to run on their server the way they want it to run just because they owned it. What if I didn't like games that I as a server owner couldn't at least gain some basic control and functionality over? What if I dont mind server owners making some changes or modders modding, just as long as it's not easy for anyone to screw it up and ruin my quality and hard work?


It's a lot, and it would seem impossible, and it is impossible to please them all outright and completely, but it's not impossible to set things up, so that no matter who I was, having it my way shouldn't be to tough to get to from where I'm starting. Yes, it was a lot of work, yes I believe I have achieved a nice balance of all that, and NO I'm not gonna tell anyone what I would want if I was modding it. That's a surprise so don't ask, lol.


I know some of you guys are probably tired of these long winded explanations and I apologize if they drone on sometimes, but you ask good questions, I like to give complete and clear answers, and when talking about features, upgrades, and refinements that come with this, it's hard to know where to stop, there really are so many that I'm not sure I could tell you all of them if you asked. You could almost get the wrong impression and start thinking "Well hell, it sounds like the games already built for me, what's the point in that?" But it's really not like that. The full design concept and frame of thought of building this pack was always centered around just a few "questioned" guidelines... And they are......


While based heavily on keeping as stock compatible as it could possibly be, what do these collections of scripts need to have or have done to them, to make them what IMO they truely NEED to be, to be better, faster, easier, richer, less frustrating, more rewarding, better to learn from, more like a good "Standard" that nearly anyone could start with, and valuable to everyone who might have a game idea that is nothing like my own personal ideas?


I spent a lot of time outside my head so to speak trying to be very neutral in regards to need so that I wasn't doing exactly what the above questions help prevent. Which is me building your game for you. As mentioned before, there are gametypes like CTF and Deathmatch, and such, and I debated them and weather they were "proper" for a neutral situation, and that ended up in a great new feature. If you don't want CTF, or don't even want to see my code because you want to do it yourself, then just try not to look at it any longer than it takes to delete it from the Server/Games folder. It wont break anything if you do. But if you don't delete it, it's ready to play as soon as you click your .exe The main reasons I put them in is because It's now easy to plug em in, or jerk em out, and they demonstrate how you will be able to make new game types and plug them in just as easily. This is also supposed to be a learning tool, and obviously we don't all know how to code CTF, but some want to learn, and CTF in one game is different from CTF in another when it boils down to what your game world vision is. It's there if you just want a reference for a CTF variant you might be wanting. If you want it and could have done it yourself but don't want to waste the time doing it if you can help it, you're covered as well. Endless possibilities, and the main points are that you have plenty of choices, and plenty of room for your own ideas.


The whole server reliability and moddability design allows you to code a completely new gametype and play it all from two files, your new game script, and your map. The server is setup to ask you what to do(exec certain function calls) at predetermined times and places that I've calculated are the most critical in giving someone the best chance to make a new gametype, WITHOUT having to touch the actual base server code or even add one single "exec("my new game");" anywhere to get it into the server and playing. That's as newbie freindly as I could get, and it in no way interfere's with your ability to go beyond that and add or remove whatever you please, and modify the server to your needs, it's mearly what I felt was a great balance of power and versitility right out of the box for anyone that uses it.

;-)
#23
11/23/2004 (1:25 am)
Thanks for taking the time to clear that up Gonzo, and I hope the release goes smoothly :)
#24
11/29/2004 (2:36 pm)
Gonzo I'm not sure if you said this or not. If you chose ctf for example would the bots react and go capture the flag. that would be great if not theres still more than enough in the pack to make it worth while.
#25
02/05/2005 (2:51 pm)
This sounds great! Can't wait ; )
#26
02/16/2005 (7:54 am)
Any release dates? Spring, summer? Please!
#27
04/24/2005 (1:20 pm)
Very soon
#28
08/10/2005 (7:06 pm)
How is development on this progressing?
#29
05/23/2006 (7:16 pm)
It's been over a year since "Very soon."

Any chance a release date might make itself available?
Page«First 1 2 Next»