That's how Warcraft III handles it.
Printable View
That's how Warcraft III handles it.
Just keep our camera angles steep enough, then? ine with me =).
Z.
okay Sas, run with that idea. i seem to understand it better this morning!!
Zaei, what do games like Age of empires etc do for terrain ? sky could look good for a 'low' camera angle and crap f or a higher one.
For the edges of the map you should make it scroll over onto the opposite side, is that what you meant ?
Check out: http://www.gignews.com/dev2pub/overview.htm
He means to scroll until the player can just not see the edge of the map.
Z.
Nice article =). Good info, thanks!
Z.
Ok, I have been thinking about what attributes the basic unit template needs. This is all of the information that will be displayed about the unit, or basic info. Here is what I have so far:
This information will all come from a central database, and be filled out in a Unit structure. After that, additional properties can be added, per game type. Here are what I can think of off the top of my head (certainly not a complete list):Code:A Mesh Object, its physical form
A Texture Object, the image displayed in the UI
A Second Texture Object, the icon displayed if meshes are not used
A Speed value
A Hit Point Value
A View Range value, how far the unit can see
An Attack Range value, how far the unit can hit
A base damage value
Additional properties will be added at runtime. For instance:Code:Unit Type
Magic Points, if applicable
Armor Value
Damage bonus
At that point, the Knight object has an "Armor Value" Property. When this property is first accessed, It will run the command string (the second parameter to the AddProperty() method) through the database, and retrieve the value, and cache it for later use. That will not be the exact system, but it will be fairly close, at least in concept.Code:Knight.AddProperty("Armor Value", "SelectTable("Units"); Query("UnitName='Knight'", "ArmorValue");");
Anyway, post me some more unit properties that we are likely to use.
Z.
Am I getting the impression that ToW is the 'vanilla' Divinity engine game? If so, what possibilities!
Pretty much... You can only add variety from ToW =). If we offer a wide variety of unit properties, people will be able to surprise even us with thier creations.
I think we are going to need a special "Original" Game setting, so that only the original units are used in the game, for people who dont want to get the extras, and such. We can also create unit lists for each map, so that only those units are availible.
Z.
Mountable (Yes/No)
Mount_UnitType (gain new speed, accuracy, damage, from this unit "type", but not health)
Armour Cover %
Armour Absorb %
To discover damage in combat:Then you can make a metallic "squink" or a fleshy "spluch" depending on whether the attacker hit the armour or not :)Code:Pseudocode:
a = Random(1 - 100) / 100
If (Random < Cover%)
Damage = OrigDmg * Absorb%
Else
Damage = OrigDmg
And thank you Zaei, for offering all this to the users :)
I aim to please =). Hell, I want to play this game! =).
Z.
Also, for mountable units, an Attached Horse =). Perhaps an HHORSE? =).
Z.
By the way, how is the site coming along =)?
Z.
Bwahahaha :)
I am making a cool ability (this goes along with a side project for someone else, so it's perfect) to be able to read the bitrates, ID3 tag info, etc. off an Mp3 on the server-side with a DLL I'm writing. Hopefully, I can then implement this to downloads on music and forum mp3 attachments to show info about the song.
Is it possible to port a game such as this to Linux? It was just a thought that crossed my mind with so many other things being ported simply by changing a few binaries (Return to Castle Wolfenstein, Unreal Tournament, Tribes 2, etc)
Now I'm not implying anything, just to ask, would it? I mean, we have plugin capability so you could have OpenGL and Linux display/sound/network modules developed by the community.
And, what do you think about static/dynamic lighting switchovers for ToW.
Zaei, the site's great. I'm (nearly) finished the Downloads portion. From there I will move on to the FAQ, and then Knowledge Base sections of the site. As of right now, the forum is a mess with a few bugs that need to be killed (IIS won't even give me the line numbers :(). So that's basically what's happening.
Nifty =).
I have thought about porting, but at this point, it would require a lot of re-writing code. For instance, I was working on the DScript compiler this evening. I started the new one on linux, then moved it to MSVC tonight. On the initial build, I got 11 errors, where the code was just fine with gcc. It works the other way too. At the moment, the only thing I think will work on both is DivDatabase, and that is because I have been extra careful to write standard code. Everything else would have to be redone.
I would personally like to avoid doing any lighting on the terrain beyond shadows. Simply enough, It would require too much memory to hold all of the information. At the moment, I have a vertex coordinate, a diffuse color, and two sets of texture coordinates for a total of 48 bytes per vertex. Adding a normal for each vertex would push that up to 60 bytes. And we already have static lighting in our shadowing. I do want to add circular shadows to units, though, so I dont think that detailed dynamic lighting will be missed.
Z.
I cant wait to see the site. I took a browse around the preview section that is already online earlier, and I just cant wait =). You are doing a great job on it =).
Tomorrow I am having a party, so nothing is going to get done, but Ill be back to work on monday. I need to get my mouse clicking working correctly, and then do some stuff with units.
I also need to get working on the UI, particle systems, and such like.
I also want to try to get DivDatabase finished up soon, since nearly everything else sort of relies on that =).
Z.
I also installed 3DSMAX earlier today... I need to learn how to texture in that darn program...
Z.
Thanks :)
Oh well, porting, I suppose, is just a dream :) But, if we do release the source, there could be some who port it themselves!
Heh, about your party, what a coincidence. I will be getting a TON of work done tomorrow because NOTHING is happening! :D
I expect to have the files done by tomorrow (err, today, it's 2 am :D, and I'm an insomniac :))!
Me too... 2 am, here. I finally got to sleep at 5am yesterday, and I think I might be doing it again tonight. Sometimes I take a few Benadryl to knock me out, but then I sleep until noon...
Hey, werent you supposed to be drawing up a "screen shot" of ToW, as a concept? =).
And I dont know if Invitro is still around or not... I havent seen him in a looong time...
Z.
Tends to happen when the only way of contact is a message board :(
Oh well, we have (and always will have, I think :)) me, you, Jorj, and Psyvision. At least, that's what I hope!
And yes, I was supposed to, but I don't have a very long attention span :(
I might get around to doing it sometime, sooner or later. But before we do the final GUI. Long before.
Well, I think I'm going to go hit the sack. If you want to cure insomnia, put your alarm for 6 or so hours after you get to sleep. Then, when you wake up, you haven't had enough sleep and go to bed at the normal midnight :D
Besides, the best work is done during the morning. At least, it always is for me. :)
See you later!
I prefer late night to the morning... Its just me, and my code, and I can get some serious work done =).
Anyway, night, Ill post some more on Monday.
Z.
See you then :)
Its not really the lighting calculations I am worried about, it is storing a normal for every terrain vertex. Its just too much memory to use on something that no one will notice. If you like, I can try implement it for models, though, since they come with normals anyway. I was simply going to use ambient lighting on them, but If you want, I can add dynamic lighting, just not for the terrain.
Z.
Well, I think I have user permissions in DivDatabase all sorted out now, and working correctly.
Z.
Hi Guys,
Sas, I visited the crystalrain site. It looks nice. I think the color transition from the main page to say the knowledge base page works well. Going back to main page from KB really draws attention to the title...nice effects.
Could you answer some technical details about your game development? I am asking because I am really curious how the whole puzzle fits together. My son says the engine on the site he played used a C++ engine (downloaded to client pcs) but the actual game content was coded in Java (such as disappearing doors, etc.) ...not just scripting, but actual programming. So I have some vague ideas...
Is the engine in C++? Does the engine use DirectX/OpenGL? Is DivDatabase the database that stores all variable data for the game being played in multiplayer mode? or is it for logging into a game? What runs on the server...a database host of some sort? What runs on the client...a 3D engine I suppose along with the networking code? Does the program read in 3ds models or do you use .x or .obj files? Any VB or Java?
I have been feeding myself tidbits from tutorials and forums as I have been learning OpenGL and C++ with my Dev-C++ IDE. I can make things spin around at my command (keyboard)...still makes me sick to look more than a few minutes ;-) Manipulating arrays and databases sure sound safe for me.
Regarding the website Sas, did you create the ASPs are are they standard stuff...the layout looks nice without being cluttered.
Well if you need a test jockey..let me know. I am certain my son (the 7 year-old) and I can play war on the computer. He's naturally aggressive and smart...plus he can tell me what he sees since I can't look at the 3D screen too long. ;-)
I seem to have noticed a lot more activity here in the past several weeks...is that an illusion or are you guys getting all psyched up because you are getting close?
Regards,
ChuckB
Well, I got a real PC back, which has really boosted my own productivity, but I think that things are really starting to shape up. We are still a ways off, but getting closer every day =).
Our own engine is in C++, using, for the moment, DirectX 8.1. The design, does, however, allow OpenGL, or a software renderer to be written, and used without code modifications.
DivDatabase is a database system that I am writing that will eventually contain everything that the game requires. This includes maps, textures, models, and also game content, such as scripts, unit/building definitions, etc. The interface is over a network, so it allows transparent access to a database on, say, the client PC, or to a database on another computer.
We are using our own model format, that simply holds vertex and index data. The tools are all written in VB, and we arent using Java at all.
We will certainly let you know when we start a beta test =).
Z.
Well, I implemented file records. I havent tested them yet, but it compiles =).
Basically, a file record is an item in a table that is stored in a file all by itself. Here is an example:
The column with the data type of "file" is actually stored in a file on the hard drive. Simply, this allows us to store, say, a 1024x1024 sized texture in the same column as a 32x32 sized texture, with no wasted space in the 32x32 sized slot.Code:| integer | char(020) | file |
10 hello 0
20 goodbye 1
Z.
Zaei, that sounds real intresting. I trust you are keeping the data usage as small as possible for the sake of HD space on the server ?
At the moment im not really in a networking mind and i was having a play with VB again recently. Is there anything i can do in VB ?
I think something along the lines of an installation program could be good ? like modifying the P&D Wizard to look a hell of a lot better ?? or something to do with the tow:// thing that Sas was on about.
Thanks for the remarks, Chuck. I do appreciate it, thanks :)
Well I wasn't here (or on the development front, I'm afraid :() because my Linux box came crashing down when I tried to install a new kernel. Since the bootloader was LILO, I couldn't boot into Windows either. It's all taken care of now, and I have OpenGL support in Linux :D
And cool on everybody's part. You're all doing great work :)
Looks very nice. After a quick search of the site, though, I found out why =).
On top of that, It says that a GF3 is required for the full visual splendor.Quote:
Q: Will the graphics run on slower systems, and what are the minimum system requirements?
A: Yes, in fact both graphics and sounds will run on slower systems. The current system requirements call for Pentium II systems including a GeForce 2 32 MB graphics card supporting at least 128 MB RAM to enjoy full-scale graphics quality that has never been experienced before in an RTS game.
Z.
I SHUD BE FINE :D :p :D :cool:
:P
Me stuck here with my bad processor and vid card :(
We CAN make ours look that good, but only if the models are that good ^_^
Yeah, they have pretty good artists (the textures especially). 8000 polygons per unit model is excessive, even for many first person shooters.
And Sas, "Can" is the wrong word =). "Will" Is correct =).
On my end, console parsing is going to get so much easier. I just wrote a little object. Some sample code:
The above turns "Func(string, number, string, string, number, string);" into:Code:int main()
{
string_tokenizer s(string("Func(string, number, string, string, number, string);", string("();, "));
for(int i = 0; i < s.size(); ++i)
cout << s.token(i) << endl;
return 0;
}
=).Code:Func
string
number
string
string
number
string
Z.
Well, I started working on the new and improved console class. This one should include objects and standard functions, as well as better type safety =). And it is also about a million times easier to write with the class I created above. Instead of 150 lines of code to add a function definition, I think I have like, 10 =).
Z.
Im getting a Radeon 64megDDR card this evening =).
The console is coming along. I am working on objects at the moment. I had to add some stuff to the string tokenizer. Take the code I posted above:
Notice that change in the first string, where I added the \x01s. The output would then be:Code:int main()
{
string_tokenizer s(string("Func(\x01string, number\x01, string, string, number, string);", string("();, "));
for(int i = 0; i < s.size(); ++i)
cout << s.token(i) << endl;
return 0;
}
The characters surrounded by \x01s do not get checked to see if they contain delimeters. Pretty nifty.Code:Func
string, number
string
string
number
string
Z.
Got my Radeon =). 64 megs of memory, HWT&L, FSAA. Im in heaven =).
Z.