Not necessarely. Compare my code to Quake 3's SDK, or Doom 3's SDK. For a game that you wanna make, you are looking at a million lines of code to get a decent engine going. Hell, I haven't even put in a physics engine just yet. Or BSPs, portals, octrees, 3D model loaded, 3D terrain, collision, an interactive menu, etc. etc. etc. for that matter either.
I know its not a LOT of code. I'm just saying because I was expecting something a little bit simpler, if you will .
@chemicalNova
Thanks, I'll defiantly give him a call when I need some help with that.
I'm aiming more towards a more advanced look and feel, like how modern day games look (such as hl2, but not that advanced).
As for the rest, we will figure them out as we need them. Right now, I think we are going to make all our sounds (music and sound effects such as a gun shot) and make them a MP3 or a WAV file.
Just wondering.. why not VB.NET so you can use DX9?
Cause .NET executes 3% slower than VB6. And I didn't care for it being 100% object oriented and managed. But it's going to be interesting to pull this off in VB6.
Just wondering.. why not VB.NET so you can use DX9?
See the thing is, I really want this to be as self suffecient as possible ie, don't make the user download 344309248 things that are 90000mb each.
The .Net Framework is like 50mb.
VB6 runtime is like 5mb.
Since, I used to have dial-up, I feel for all the people who can't/don't want to download the .Net Framework. But, I may be intrested in programming in .Net when it becomes more wide spread ie more than 50% of computer's have it installed.
Besides DX8 is still viable to use, latest is 9. So, its not like its THAT old.
Ok, as you can probably see in the front page I have been assiging parts.
Jacob, hopefully you'r not banned, you just put that as your title . When you get back tell me what you want to work on.
Ok I talked this over with my dad, he says that it's to close and we are going to have to change the name. Also, this game it self will have to have NO refrence to System Shock 2 at all. (But we can still talk about the ideas it surrounds XD).
Edit: Planet Invasion will do temporarly until we can agree on a name, just in case the companys decide to do some sniffing.
And Jacob will be back around 12-05-2005 ~02:00 PM.
Last edited by k1ll3rdr4g0n; Nov 29th, 2005 at 11:40 PM.
I like Planet: Invasion because then we could use things like Planet: Earth, Planet: Mars, or something along those lines if we were to make a sequal.
PlanetFall also sounds good. I'll ask some people what they think.
Anywho, I should have a small DX example done today, I'm starting to get this stuff.
But, I'm defiantly going to need Jacob's help to write the engine.
I'm going to have to setup a way for members to upload code somewhere so everyone can see it and change it if they see it needs to be changed.
Edit:
Finished up with a testing of Direct X with VB. I'm learning from this site (http://directx4vb.vbgamer.com/Direct...rials/DirectX8) amoung others. But, I got the code from there. Modifyied it heavily of course. I made it a triangle instead of a square (I commented out 1 vertice to make it, because a triangle is 3 vertices, because it only has 3 points.). I made it move with a timer, and it bends while it moves. Granted this isnt special, its a big step for me into Direct X.
Last edited by k1ll3rdr4g0n; Nov 30th, 2005 at 09:59 PM.
We need code bases for the engine and such. Pref the engine in a dll, same for the game engine, etc.
This makes it so much easier in the long run when code has to be recompiled.
Hint for every dev: Binary compatability!
Thats a good idea .
But, I'm going to wait for Jacob to come back. Becuase I think he may want to work on the engine. Besides, he knows the most about Direct X (at least more than me ).
This is going to be a *****-post with some pointers. Thou are warned :]
Looking at that test.rar there are few things that bothered me a bit, mostly code layout and type declaration. I know this is a test so I'll ignore the type dims but..
VB Code:
Public Function Initialise() As Boolean
On Error GoTo ErrHandler:
Dim DispMode As D3DDISPLAYMODE '//Describes our Display Mode
Dim D3DWindow As D3DPRESENT_PARAMETERS '//Describes our Viewport
Set Dx = New DirectX8 '//Create our Master Object
Set D3D = Dx.Direct3DCreate() '//Make our Master Object create the Direct3D Interface
D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, DispMode '//Retrieve the current display Mode
Which gets me to a few pointers:
- We need to set a certain rulebase regarding type definitions, function naming, etc.
- Layout.. use tabs.. use a LOT of tabs if necessary.. having everything splattered against the left makes code look chaotic.
- Commenting.. Each module/form should have a top comment saying basically who edited it last, what was edited and when. (WWW) - Also place comments above code .. not behind it as it might be obscured by the width of the code window.
- Option Explicit.... needs no explanation.. if someone is wondering why option explicit I'm going to pull out an IRC trout and slap 'm
- No Variants without damn good reasons.. The most common mistake:
VB Code:
Dim A, B as string.
^ A is a variant...
- For I/O matters... no Open "x" for input as #1 or #2.. or #5.. use Freefile.
I know the one I posted is garbage, but I did it in a hurry. .
Ulli's Code Formatter can help us with the indentention if need be.
Thats a good post, its some good ground rules.
That variant problem, I had acctually found that out when I was make my Instant Message Client/Server. My VB teacher had told us that would could do that, shows how much she knows .
Aye. But who needs a code formatter if the code has been properlly formated from the moment it was written down
--
Anyway: Since I don't have a job yet within the team I'm up for making a sorta PAK file with directory and compression support. (no zip file but it does kinda sound and look that way).
How's about Plant: Invasion (like you said before), and would it be hard to put Earth in the background instead of a moon-like planet for the first one? Otherwise they are great
A day left till jacob is allowed back in I guess? We need to have discussions things on MSN.. so people don't get banned
Not really. Try today.
k1ll3rdr4g0n, the whole time I was banned I was making some DX tutorials. I'm far from finished, but hopefully that should help you out when I get done. Also, on and off, I was making a 3D engine.
Usage of the GUI XML file..
All the GUI Menu attributes should be under
<MWBG><Menu ID="*">
The ID of the Menu gives it a tag that can be access with the OnClickMenu of buttons.
Menu Properties
- Background
The background property specifies a background that will be rendered when the menu is active.
The value is just a location to the texture. Background has one parameter 'Resize' which if set to "Yes" will
stretch the texture to fit the screen, if set to No it will center the image.
- DefaultCursor
Set the default mouse cursor image.
- ImageMask
Set the masking color (transparent color) of an texture. Default is 0 (Black)
- WidgetGraphics
Set the directory where widget graphics can be found.
Requires Theme.cfg to set the properties of the widget.
- BackGroundMusic
The music that will play on the background while the menu is active. the Music value is the location of the file.
Properties are: Loop and RestartOnMenuChange which both are self-explanatory. (Yes or No as value)
- SoundEvent
This is the SoundEvent. When the mouse is over the button or object and when it's clicked it can generate
a sound event. SoundEvent doesn't have a value. Just 2 parameters called OnHover and OnClick both values are
filenames to wave files.
- Font
Set the default font for buttons (TTF or Bitmap font). Font Value is the name of the font or path to the font. Font only supports one paramter called Shader which allows setting a shader to be overlapped on the font texture.
- DefaultMenu
Set the Default menu when the user presses escape. Normally this should be the parent of the menu.
- Widgets
The Widget group is a certain object that will be rendered on the screen. There are several different types of
widgets available in the GUI Class.
Parameters for Widget-tag
Type - See below
OnClickScript - On click on the widget it will fire this script.
OnClickMenu - On click on the widget it will fire a MenuChange with the value.
(OnClickMenu="GUI_MainMenu" or.. OnClickScript="C:\Script.cfg")
Visible - Set the visiblity of the Widget. ("Yes" or "No")
Transparency - Set the transparency of the object: Default = "0"
Types:
Button - Can be clicked to initiate a menuchange or script start.
TextBox - A textbox where the user can fill in his own text.
ListView - To show multiple data with columnheaders that can be sorted.
Slider - A horizontal slider for change high-value data the easy way.
Image - A image that can be changed.
CheckBox - A Checkbox
Hidden - A hidden widget to store temporary data.
UpDown - A up down value widget for when a slider isn't good enough.
ListBox - A ListBox
ComboBox - A ComboBox
The following Child properties are supported
Text - For buttons and such this will set the text.
Location - Set the location of this widget based upon X,Y Pixel coordinates with a few extras.
(No Default, Value = X,Y) - Location has 4 parameters called XAlign, YAlign, XOffset, YOffset
which support the following values.. XAlign: Left, Middle, Right. YAlign: Top, Middle, Bottom
XOffset has a value of which the L,M or R gets offset by X amount of pixels. The same goes for
YOffset.
Variable - Set a Keyholder variable for this widget. If the value changes on the widget it will
save it's value to the specified key.
InitValue - Initial value for the widget. If Variable is used in this widget it will take that value.
DefaultValues - Allows to set a default value for this widget (doesn't work with Buttons and such). For
listviews these values should be comma-delimited.
Columns - For the listview. This allows to set the columns for the listview. Comma-delimited.
Code:
Additional Script commands MWBG:
These script commands are to be used for in-game. Usage outside in-game state might give a few errors or 'problems'
Generic Functions:
- Echo(TextString) : Shows a message on console/top screen.
Actor Support Functions:
- SetWayPoint(WayPointName, X, Y, Z) : Set a waypoint.
- FireAtLocation(ActorName, X, Y, Z, AllowMove) : Actor will try to fire at location (AllowMove = "YES" or "NO")
- FireAtTarget(ActorName, Tag) : Actor will try to fire at tag (could be an actor/object etc)
- MoveActor(ActorName, X, Y, Z) : The Actor will walk to the designated area (Walk on it's own speed)
- MoveActorToWayPoint(ActorName, WaypointName) : The actor will walk to the designated area (set by waypoint)
- TeleportActor(ActorName, X, Y, Z) : Teleport Actor to destination
- TeleportActorToWayPoint(ActorName, WaypointName) : Teleport Actor to destination waypoint
Map Support Functions:
- SetHighLight(KEY, X,Y,Z, RGB-LONG, RADIUS) : Sets a bright spot at location, RGB-LONG = color, Radius is the radius in
units.
- RemoveHighLight(KEY) : Remove the Highlight location
- FadeOut(Seconds) : Fade out in Seconds
- FadeIn(Seconds) : Fade in in Seconds
- MoveCameraTo(X,Y,Z) : Move the camera to the location
Media Support functions:
- PlayMovie(MovieName, AllowCancel) : Plays movie and waits till it's finished. AllowCancel is "YES" or "NO and
allows player to press mouse or spacebar to cancel the movie and proceed.
- PlayWave(WaveName) : Plays a wave file
- PlayWaveEx(WaveName, ActorName) : Plays a wave file originating from an Actor class (3D sound)
Since Jacob is working on the engine, we can work on the intro movie until he posts code. We can create the intro scene with 3D Canvas (http://www.amabilis.com/) its a real simple drag and drop 3D modeling and animation tool. It even makes the animations we make into AVI files, so we can easily add it to our game.
Since Jacob is working on the engine, we can work on the intro movie until he posts code. We can create the intro scene with 3D Canvas (http://www.amabilis.com/) its a real simple drag and drop 3D modeling and animation tool. It even makes the animations we make into AVI files, so we can easily add it to our game.
Posts code? It's too much code to even post. There's a 10000 character limit.