|
Re: POPULACE or 3DGS?
[Re: Locoweed]
#104796
01/04/07 04:40
01/04/07 04:40
|
Joined: Aug 2001
Posts: 2,320 Alberta, Canada
William
Expert
|
Expert
Joined: Aug 2001
Posts: 2,320
Alberta, Canada
|
While i've purchased Populace, i've opted to use native 3DGS. At the time I purchased, I did not know much about multiplayer, and most tutorials were centered around 3DGS commands. I've now got a sizable game with 8 players, weapons, ect. working with multiplayer, custom coded(dont use no automatic update stuff from A6). The reason I used 3DGS was due to the tutorials, there was next to nothing for Populace, and for a starter in mulitplayer logic, I needed more.
@Loco - I was wondering, does Populace just speed up the actual development, or does it affect the sending of data across a network(more efficient/faster)? If the latter, is it possible to somehow convert an existing A6 multiplayer project to Populace, just for the speed upgrade in sending information? Thats one thing I didn't understand, what did Populace do that native A6 commands couldn't? I think i've coded my multiplayer quite efficient already; but extra efficiency never hurts.
|
|
|
Re: POPULACE or 3DGS?
[Re: William]
#104797
01/04/07 07:01
01/04/07 07:01
|
Joined: Oct 2002
Posts: 2,256 Oz
Locoweed
Expert
|
Expert
Joined: Oct 2002
Posts: 2,256
Oz
|
Hi William,
It affects the sending of data across a network, much more efficient.
I am afraid you will have to wait about a month before I can explain how I have been using the system. I have found it best to use it as more of peer system, where the computer that creates an entity actually handles it's data transfer over the network, instead of the server handling everything, but it can be used how ever you want. For multiplayer with a host the peer system seems the best fit, for a MMO having the server controlling everything would be better obviously.
Give me a month or so to get done with this project's deadline and I will show you what is possible.
Loco
Professional A8.30 Spoils of War - East Coast Games
|
|
|
Re: POPULACE or 3DGS?
[Re: Locoweed]
#104798
01/04/07 15:14
01/04/07 15:14
|
Joined: Jan 2003
Posts: 517 Illinois
giorgi3
User
|
User
Joined: Jan 2003
Posts: 517
Illinois
|
Wow, that's some recommendation Loco. I can't wait for the tutorials! I was hoping populace would prove out, as 3DGS networking has left me frustrated to this point.
If they keep the price at $50.00, I'll be purchasing when I see some results/tutorials.
Giorgi3
10,000 parts flying in a close formation does not constitute an airplane. Some assembly is required.
|
|
|
Re: POPULACE or 3DGS?
[Re: giorgi3]
#104800
01/04/07 15:54
01/04/07 15:54
|
Joined: Aug 2004
Posts: 74
East_Coast_Games
Junior Member
|
Junior Member
Joined: Aug 2004
Posts: 74
|
For reference I have upload the Populace (TM) user mainual to the ECG Site. The user document contains instructions on how to get started with Populace as well as some code snipts to get you started. I hope this is helpful. for the document go the forum at www.ecgames.com.Happy New Year!
|
|
|
Re: POPULACE or 3DGS?
[Re: cristaballa]
#104803
01/05/07 11:56
01/05/07 11:56
|
Joined: Aug 2004
Posts: 74
East_Coast_Games
Junior Member
|
Junior Member
Joined: Aug 2004
Posts: 74
|
ECG is going to stick with the revised priceing. 50$ a unit. While we update the purchasing site with the new pricing any one interested in Populace can contact us going forward at ecgbusdev@ecgames.com to purchase the software. Thank you Jim
|
|
|
Re: POPULACE or 3DGS?
[Re: East_Coast_Games]
#104804
01/06/07 00:19
01/06/07 00:19
|
Joined: Jun 2006
Posts: 2,640 Earth
Germanunkol
Expert
|
Expert
Joined: Jun 2006
Posts: 2,640
Earth
|
hey.. this question goes to anyone who knows, mainly to you, Jim, I believe^^ We're thinking about buying populace. I've read through the documentary, it looks very promising. One thing I didn't quite get... if I want the player's skill20 to be "broadcasted", or updated constantly on the other clients and the server, I don't do dllfunction MP_TrackSkill(player, 20); but dllfunction MP_TrackSkill(player, 48); right? I think you've just sold another copy of populace ... it does look very promising. I hope it's as easy to use as it looks from the documentation... and I'm sorry you didn't have much luck with it, prence... hope that changes! Micha
~"I never let school interfere with my education"~ -Mark Twain
|
|
|
Re: POPULACE or 3DGS?
[Re: Germanunkol]
#104805
01/06/07 04:51
01/06/07 04:51
|
Joined: Oct 2002
Posts: 2,256 Oz
Locoweed
Expert
|
Expert
Joined: Oct 2002
Posts: 2,256
Oz
|
Hi Germanunkol,
That is correct with track skill number. It is best define everything. 0 - 28 are actually used for fields, which are 3dgs fields likes pan, tilt, roll, alpha, etc.
Define Example: ------------------------------- DEFINE MPUC_FILENAME, 0; DEFINE MPUC_POSITION, 1; DEFINE MPUC_PAN, 3; DEFINE MPUC_TILT, 4; DEFINE MPUC_ROLL, 5; DEFINE MPUC_SCALE_X, 6; DEFINE MPUC_SCALE_Y, 7; DEFINE MPUC_SCALE_Z, 8; DEFINE MPUC_FLAGS, 9; DEFINE MPUC_FRAME, 10; DEFINE MPUC_NEXTFRAME, 11; DEFINE MPUC_SKIN, 12; DEFINE MPUC_AMBIENT, 13; DEFINE MPUC_ALBEDO, 14; DEFINE MPUC_ALPHA, 15; DEFINE MPUC_LIGHTRANGE, 16; DEFINE MPUC_BLUE, 17; DEFINE MPUC_GREEN, 18; DEFINE MPUC_RED, 19; DEFINE MPUC_EMASK, 20; DEFINE MPUC_EFLAGS, 21; DEFINE MPUC_MIN, 22; DEFINE MPUC_MAX, 23; DEFINE MPUC_TRIGGER_RANGE, 24; DEFINE MPUC_PUSH, 25; DEFINE MPUC_FLOOR_DIST, 26; DEFINE MPUC_SMASK 27; DEFINE MPUC_CLIENT_ID 28; DEFINE MPUC_SKILL_1, 29; DEFINE MPUC_SKILL_2, 30; DEFINE MPUC_SKILL_3, 31; . . DEFINE MPUC_SKILL_98, 126; DEFINE MPUC_SKILL_99, 127; DEFINE MPUC_SKILL_100, 128; -------------------------
Then you just do this, MP_TrackSkill(my, MPUC_SKILL_20);
As of right now there in no just sending a skill once, it always tracks the skill until you turn off tracking it. Here is an example of what I do to send skills I really don't want to track forever so I track for 1 second then turn off tracking.
----------------------------------------
my = MP_EntityCreate(em_light_inf_string, vector(create_pos.x,create_pos.y,create_pos.z), "inf_action", "InfCallback"); entsCreatedByMe += 1;
//make sure to track the animation skill MP_TrackSkill(my, MPUC_SKILL_28); //anim_state my.anim_state = anim_stand; MP_TrackSkill(my, MPUC_SKILL_66); //_obj_type my._obj_type = 2004;//NumFromName("Em_Fighter","Id",unit_dbf); MP_TrackSkill(my, MPUC_SKILL_1); // health my.health = NumFromId(my._obj_type, "health", unit_dbf); //make sure to track the owner_id & team until set MP_TrackSkill(my, MPUC_SKILL_77); //team my.team = player_team; MP_TrackSkill(my, MPUC_SKILL_60); //owner_id my.owner_id = player_id; MP_TrackSkill(my, MPUC_SKILL_47); //EntityNum my.EntityNum = player_id*EntArrayIndex+entsCreatedByMe; MP_TrackField(my, MPUC_TILT); // Tilt MP_TrackField(my, MPUC_ROLL); // Roll sleep(1); // wait until team, owner_id and obj_type set, then stop tracking if(my) { MP_IgnoreSkill(my, MPUC_SKILL_77); //team MP_IgnoreSkill(my, MPUC_SKILL_60); //owner_id MP_IgnoreSkill(my, MPUC_SKILL_66); //_obj_type MP_IgnoreSkill(my, MPUC_SKILL_47); //EntityNum }
--------------------------------
In that example I track team, owner_id and obj_type, EntityNum for one second, then stop tracking with MP_IgnoreSkill(), because they don't need to be continually tracked during gameplay just set at creation.
Stuff like anim_state, health, etc I keep tracking in that example.
In the example above also wanted to track Tilt and Roll so I used MP_TrackField(my, MPUC_TILT); // Tilt MP_TrackField(my, MPUC_ROLL); // Roll to have them tracked also.
Anytime you create an entity with MP_EntityCreate() the entity's Position and Pan (not tilt and roll) are automatically tracked until you turn off tracking them. So if you created a static entity you would want to turn off tracking Position and Pan after entity was created using: MP_IgnoreField(my,MPUC_POSITION); MP_IgnoreField(my,MPUC_PAN);
Also, unlike 3DGS networking, the computer that creates the entity handles transfering that entity's data. The action is ran on all computer's also, not just server(or creator in this case). So I generally put in some code in action to exit on computers that did not create it after any basic stuff is set up like materials and whatever else you want set up or run locally on all the computers.
Example in an action: --------------------- // wait until owner_id set or received from computer that created entity while(!my.owner_id) { wait(1); }
// set materials, local functions you want run, etc here // local functions like animation, healthbars, or anything // that would be similar to Proc_Local with 3DGS would be placed here // local events can be set up here to with enable_scan, etc
// player_id is set in main after connected using //player_id = MP_GetPlayerIndex(); // you will have to look that up
// if action running on computer that did not create entity, exit here after basic setup if(my.owner_id != player_id) { return; }
// creator's machine continues to run the actual action from this point on while(my.health > 0) -----------------------
That is some basics. Later, when I have time I will making some detailed examples.
Loco
Professional A8.30 Spoils of War - East Coast Games
|
|
|
|