As far as I can tell, the normals have exported correctly. I got lighting to work just fine. The faces were backwards though, so the model was inside out, but I fixed that in the exporter, and everything works correctly now =).
Z.
Printable View
As far as I can tell, the normals have exported correctly. I got lighting to work just fine. The faces were backwards though, so the model was inside out, but I fixed that in the exporter, and everything works correctly now =).
Z.
LOL - I realised today that after re-writing the code for the server and client i had missed out a load of it so text wasnt being sent properly to all the clients. The problems have been corrected now.
Oops =).
Z.
I was thinking this weekend to go for a test with the server and to get as many people from these forums onto it as possible to see how well it stands up to the mass number of users and to see the lag.
Whatcha think for a test with a max of 100 users this sunday at 1.00pm GMT ??
So you're telling me that we can now convert ASCII 3DS files to ToW Models??
AWEsome. Is everybody fine with the AAC/MP3 ideas?
I wont be here this weekend to do the test =(.
As for streaming audio, I think taht we should make the multiplayer component very modular, and build the rest of the system first. Then, depending on the bandwidth usage, we could stick it in(I think that I calculated a max of 200 net messages per second on a 33.6kbps connection at one point, but dont quote me).
I think the next demo will be something Diablo Styled, to show off animated meshes, and also allow me to figure out walls, and someone else can do the area editor. Of course, this is just an idea, anyone can make suggestions if they like =).
Z.
Streaming wont be able to be done on the server with it in its current form, it would need two threads per connection for it to work well because:
1 - For Game Data
2 - For Streaming Data
So if as Zaei said we would have about 10 users on the server that would be 20 threads which i dont think is too bad - tho not sure.
P:s. Sas - I pissed up adding files to the web site, can you please remove all of the winsock ones. I added the first and it worked. Then the second load it didnt and then so i added the latest version coz it wasnt there and they all appeared.
I can make all of the networking stuff go into a dll so all that you have to do is call one function in that which spins off a thread to run the server in which spins off threads for the connections.
Parksie says we are safe with 20 threads.
Can we leave streaming out for the moment and get the chat and game data sending going first ??
Am i correct in saying that we have someone starting a server somewhere from which people can join to and there is only the one lobby on the server which is for that one game ??
Server and client will be built into the same thing so people can host and play ?
Servers will have an option to be dedicated or non-dedicated ?
PLEASE GIVE VIEWS ON THE TESTING OF THE SERVER AND CLIENT THIS WEEKEND SO I CAN GET A POST IN SOME OF THE OTHER FORUMS (GENERAL) TO GET PEOPLE KNOWING THAT ITS GOING ON
20 threads is certainly ok. We should definately have the option of allowing players to host and play at the same time.
Z.
New Functions:
Server
--------
Can now boot users
Can now whisper to users
Can now send text to users without the "Server:" prefix
Client
-------
Can now whisper to one another
To be added - Logging
Servers should be able to ban people too. In Half-Life, each CDKey & Installation is given a WON ID. When they ban a user they stop their WON ID from ever coming back. So, we should promote a system like that too, so that people that cheat (I'm thinking about it already, I was just playing CS with a bunch of cheaters! :eek: ) can be banned, and banned for good.
Yes, both server types should be available. Is the Dedicated server window going to be a console or have a GUI? I hated Half-Life's dedicated server console, it was really hard to look up commands and such. Also we need room for server "plugins", so that they can add things such as anti-cheat software and new admin/user commands (such as the infamous AdminMod).
Files have been "un-pissed"!
Zaei, I believe there was an error in my previous statement. I will address it at the end of this statement.
Here's a compact history of the region contained within those countries that will clarify things:
(note: I gave each country a unique identifier corresponding to the technological level in which they were founded. These are not their real names.)
(note: all dates are approximate)
90 - Massive migrations begin in the region.
240 - ALTI founded on the southeastern shore.
250 - Migrations end due to ALTI's civilising influence.
360 - ANTIS is founded on the northwestern shore.
380 - ANTIS begins its expansion southward along the shores, conquering the sedentary locals there.
470 - ANTIS' armies march southward and invade ALTI.
480 - The ANTIS-ALTI border is stabilised, with ANTIS making negligible gains.
500 - Copper is first utilised in weapons in ANTIS. Its use soon spreads to ALTI.
590 - The ANTIS script is introduced to write the ANTIS language.
610 - ALTI adopts the ANTIS script to write the ALTI language.
690 - ALTI begins a golden age of art, literature, and science. ANTIS script used along the coast of the entire region.
760 - ALTI expands into the interior of the region.
790 - ALTI brings the ANTIS script to its newly conquered territories.
960 - As a result of the increasing freedoms given to the local authorities in ALTI, which in turn was due to the difficulty of governing so much area, many of ALTI's cities declare independence and the kingdom collapses. The squabbling principalities have little to no power on the world stage.
1140 - After stagnating for six hundred years with few competent rulers, the kingdom of ANTIS falls prey to the same fate as that of ALTI.
1150 - Taking advantage of the regional chaos, one of the former ALTI city-states, led by an exceptional ruler, founds an independent kingdom called BINTA and conquers the former ALTI heartland along the coast.
1250 - BINTA conquers the former ANTIS city-states which occupied the coast to the south of the once-home of the ANTIS kingdom.
1320 - After consolidating its gains, BINTA produces great philosophical and poetic works, as well as great architecture.
1380 - BINTA annexes all former ANTIS territories.
1920 - Bronze weapons are introduced to BINTA from overseas.
2220 - Iron is first used in weapons in BINTA.
2600 - The king of BINTA is the adopted barbarian son of the previous king. A strong cavalry force is added to the army of BINTA, as stirrups are introduced.
2690 - Using their newfound weapon, BINTA conquers the interior of the region, leaving only the northern coast independent.
2700 - The early middle ages begin in BINTA.
2860 - The world experiences great prosperity.
3510 - The feudal age begins in BINTA.
3920 - There is a massive civil war in BINTA. A radical faction wanting an end to the old monarchy attempts a coup, but is forced to retreat to its power base in the north, where they form BINTA2 (2) and promptly expand to the northern limit of the region.
4040 - The armies of BINTA attempt to destroy the government of BINTA2, but make only minimal gains.
4130 - BINTA2 regains its lost territory.
4150 - A worldwide plague outbreak occurs.
4180 - The plague dies down.
4260 - The area occupied by the modern day country 4 secedes from BINTA, forming the kingdom of EVV (4).
4290 - Binta becomes two countries, EBYN (3) and EBAN (5).
4310 - There is a resurgence of the plague,
4370 - The second plague ends.
4510 - There is a rebellion in BINTA2 trying to bring back the old BINTA lingdom, but it is crushed.
4530 - The world experiences great prosperity.
4710 - THE PRESENT DAY.
2: This is an anti-monarchy country which has been having problems with rebels lately.
3 and 5: These, apart from the differences I mentioned earlier are probably very similar, each professing to be the true heir to the BINTA kingdom.
4: This is a country which is probably very much like 3, but with a barbarian cavalry influence.
I hope this clears things up.
By the way, you have a good point. Please continue to look at everything through the lens of logic, Zaei (and everyone else)! Good job!
I can build a "CD-Key" feature into the program. People then email us, and we reply with a key. Can you set up an auto response on the website for this, Sas? I can then bury a UID deep in the registry, so that once a key is issued, another will not work.
On another note, A bunch of my friends got bored of CS, and want to bribe me into making a mod -.-;;.
I also started in on the Main Engine Editor, which will eventually encase all editing functionality of the game. It doesnt do much at the moment (I have a tree view, with a root node, and a single light), but that will change. I am going to more the ASE converter into this program, and build in a model viewer, and all of that.
Z.
Well, I have added ASE importing into the editor, as well as model viewing. I have to write a TOW model importer in VB, as well.
Z.
Im gonna add the post to the General Forums about the testing because i think the server / client is ready for it ?
I had a lil look at skool today sas and i think there is still a version of the client on the site - can u remove it please.
Please correct me on this, is ToW a RTS TBS combination or what ?
I added it as a 3D RTS:
Times of War Networking text
Its just an RTS.
Z.
The model importer is done. Now i have to do skinned meshes.
Z.
Well, ASE is just great for static meshes, it becomes useless for bone animations, as the animation fo the bones is not exported. I was at a loss for a while, but then I realized that the DX8 sdk comes with a 3ds->x file converter. Further, I remembered that you can export an ASCII x file. Also, the sample animated mesh that comes with the SDK is an ASCII version. So, I took a look inside, and I should be able to parse these files just as easily as I was the ASE files. Problem solved =). I will start in on these tomorrow.
Z.
I added in scene loading and saving. The system allows for an unlimited number of user defined parameters. Example:
Would produce a treeview with the nodes Root, and the child Dragon MeshCode:Root
{
Name="Root"
Parent=""
Type="Root"
}
DragonMesh
{
Name="Dragon Mesh"
Parent="Root"
Type="AnimatedMesh"
Pos=0.0000 10.0000 0.0000
Filename="\Media\Meshes\Dragon.model"
}
I will post a screenshot of the tool soon.Code:Root
Dragon Mesh
Z.
Now that I think about it, the entire game can be defined with this format:
Gives:Code:Game
{
Name="Game"
Parent=""
Type="Game"
}
Areas
{
Name="Areas"
Parent="Game"
Type="Data"
}
SomeArea
{
Name="Some Area"
Parent="Areas"
Type="Data"
Objects=2
Instance="Dragon"
Instance="Swordsman"
}
Z.Code:Game
Areas
Some Area
Dragon
Swordsman
You are working very hard on this Zaei!!
Good ideas and good coding!!
I started on the dll for the networking today. In light of the GUI demo naming i have called it network.dll
The whole thing is called 'Divinity Networking Module'
There will be one main class called divServer, the idea is that you do like
class divNetworkServ : divServer {
};
The divServer will have a load of virtual functions to do with error messages and connections, i thought this was best so you can then change the menus / windows etc when it connects / disconnects etc.
Hmm, with looking on it on second thaughts im not sure if i should do like this:
class divNetwork - this comprises of an initialize function which takes 1 for server and 0 for client.
Then it sets an overall variable to whatever, then i can do if its the server do whatever if its the client do whateve.
Whatcha guys think on the structure of it ?
I think two seperate classes will be simplar
ok, current classes are:
divConnection
divServer
divSocket
divWinsock
im working on getting the server going first.
Zaei, whats your mail address coz i wanna mail you what i have done so u can see what its like (coding style, naming etc) ?
well what i have done so far works, im havin a lil class error though atm.
i have a function called initialize() in divServer, divNetworking is then derrived from divServer. when i call divNetworking.initialize() i get an error so i had to add in a function to divNetworking which then calls divServer::initialize(). But it works fine.
In my simple demo i did, if u call winsock.initialize, then server.initialize, it works, but if u dont init winsock then the OnError gets called :D:D
The current callbacks are:
Code:
bool OnClose (void);
bool OnConnection (int client);
bool OnDisconnection (int client);
bool OnError (int error);
bool OnInitialize (int port, int clients);
bool OnListen (void);
bool OnRun (void);
bool OnStart (void);
bool OnStop (void);
bool OnTerminate (void);
Since you seem to be having some sort of soliloquy here (I didn't spell that right, I'm positive...!), I'll cut in. Good work, it seems that you're really doing well with the networking code. As long as Zaei gives the all okay, it'll be set.
[email protected]
I think that's it...
nope, the address was rejected.
No 3 at the end, but Im not recieveing mail at that account at the moment, and It will be closed at the end of February. The new one will be [email protected], for future reference. For now, send the files to [email protected] . =).
Your setup seems good, but you need to export a Class called Network, or Multiplayer from the DLL. This class should have methods to create a server, create a client, etc. Basically, a factory class.
Z.
im sorry for not being available. The Local area network at home have been sort of.. dead lately. Im at school now, but I'm doing some work and be ready for some new themes in not so long..
Ah you're back! I've even missed you on MSN.
If you've gotten up to date, Jorj asked you a question.. why don't you ask it again Jorj?
Yeah, i will do that for ya zaei.
Sorry about a lack of updates yesterday.
Welcome back Igor. the Vertex Buffer article I wrote for you is back a few pages =).
I did more work last night on the editor, and things are progressing very well. Unfortunatly, I wont be here for the rest of the weekend, starting at about 3 today. Ill be back sunday night.
I will try to get back to you about the network coding early next week, Psy, as I dont know exactly when I will get a chance to really sit down and take a look at them.
Z.
i decided not to send it yet, i wanna get some more basic and better code going.
Darn this is complicated.
Im thinking like this:
Im trying to get this sorted in my head, do u have any threaded server demos of theory code zaei ?Code:
Servers Main Thread
-> Check For Connections
-> Client Thread Started
-> Check Messages
-> Get Data
-> Act Upon It
-> Disconnect ?
-> Close Thread
well im getting there, i now have connections being done and a thread gets spanned which then continually loops for messages and data.
I know very little about network coding, beyond simple things with the Winsock control in VB. I want to learn, but I need to set it aside for more important things right now =).
Are you using TCP/IP, or UDP? TCP/IP will probably be best for chatting, but fr the actual game, UDP will be a requirement.
Z.