Author Topic: Outpost 3d Development  (Read 132763 times)

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Outpost 3d Development
« Reply #100 on: February 20, 2009, 01:36:25 AM »
Quote
It would have been funny, but it probably wasn't since he wasn't around for all of that... I think?

Hehe no I didn't dig on any project...

Quote
He'll release a demo when he's ready...

Yeah the demo will be done when it’s done, lots of work on the tools and code structure right now.

Quote
and right now it looks like the game isn't even playable.

That’s right just a bunch of parts lying around doing nothing, the alpha can be "played" but you can't do much in it. Just testing different pieces of code.
Hope you realize that it will take a few months or more before anything that’s even looks like a demo will be ready.

 

Offline WooJoo

  • Jr. Member
  • **
  • Posts: 90
Outpost 3d Development
« Reply #101 on: February 20, 2009, 12:32:46 PM »
i just have a stupid question that may be way to early to ask but anyways:

you already said that there will be an multiplayer system (which i like :3) but will this system
be based on TCP/IP or will you intgrate a hub like system where you can connect to gather servers?

i know that question might dont got an answer right now but i was just interested in your planning or oppinion on this part


to be honest i was just wondering if there will be like a system where you can add your own hub servers on a list and cconnect to an irc like system in which you then finnaly find your opponent

well anyways

as far as i can tell even thought you say you dont did much on the grafics i say they are most impressive by now and i hope you keep up the good work on the code front ^^

if you need any help please ask i somehow feel that your doing it all on your own
and that makes me feel bad ^^

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Outpost 3d Development
« Reply #102 on: February 21, 2009, 05:30:40 AM »
Quote
i just have a stupid question that may be way to early to ask but anyways:
Hehe stupid no, early yes...

At first it will only work as a single player game, multiplayer will come later. How this is done I'm not sure at as that kind of programing is not what I'm good at. That is one point I will require help with.

I' not sure which way is the best one to use but adding your own hub server would be nice.

Quote
if you need any help please ask i somehow feel that your doing it all on your own
and that makes me feel bad ^^
I will start a new thread where I post things that I need help with, right now its hard to bring in others to the project.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Outpost 3d Development
« Reply #103 on: February 21, 2009, 05:00:43 PM »
Hmm, network multiplayer support can be kind of hard to bolt on in some cases if you haven't done a bit of preparation up front. Depends a bit on the structure, but if you ignore network multiplayer issues, then often not all of the needed structure will be there. Things like latency are important to consider. You'll probably need to delay the execution of commands a bit from when the player issues them to hide the network delay. If you're processing the game in ticks/cycles, and you wait for commands from all players without allowing for such transmission delay, then the game will lag horribly and play really choppy. There are also issues like maintaining sync. It's not too hard to build the game so that all random numbers are always generated and used in the same order, but if you haven't considered this to be important, then it can be a huge task to change after the fact. There are a lot of other issues too, but those are probably the two biggest ones, and probably not very hard to solve if you plan for it.

I've come across a few good reading sources on the subject that very clearly explain what the issues are, and properties of different solutions. If you want I can try to dig up those sources for you.
 

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Outpost 3d Development
« Reply #104 on: February 23, 2009, 01:44:31 AM »
What you say is true but I still think I will concentrate on getting the basic functionality of the game up and running first. If you could find those sources that would be great... I will try to have it in mind when I write the code.

If there is any programmer out there that has to little to do, perhaps you could start to do some coding one the network part. Just starting with a simple chat program (in C#) and then something that sends objects back and forth.

At least there will be something to have as a base when the day comes to put it into the game.
 

Offline croxis

  • Full Member
  • ***
  • Posts: 147
    • http://croxis.net
Outpost 3d Development
« Reply #105 on: February 23, 2009, 01:41:51 PM »
Working on my own Outpost project I set up an authoritative client/server architecture right from the get go and am very glad I did.  My approach is very different to what it would be otherwise.

You'll have to decide right now if you want a peer to peer system (where every client computes the simulation, and only changes to it are communicated, and the "server" does nothing more than coordinate the different clients), or a more traditional client server model where the server runs the simulation and the clients communicate to the server.

If you do decide to hold off writing networking, you might want to consider programming using a paradigm that uses events (Like MVC), if you are not already.  
David - Proud to be saving the universe sense 1984
Open Outpost developer.  Project Page | Forum Thread

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Outpost 3d Development
« Reply #106 on: February 23, 2009, 03:24:29 PM »
What is the strength/weakness between the two?

MVC sounds interesting will look more on that...

So many choices so mush to think of  :rolleyes: ... I to just want to get down an do some code... working on the tools do give me some time to think of stuff like this and the first version will not be perfect. A program is never as good as it is after being rewritten a few times.

The help and tips are most welcome.

Offline croxis

  • Full Member
  • ***
  • Posts: 147
    • http://croxis.net
Outpost 3d Development
« Reply #107 on: February 23, 2009, 04:44:39 PM »
Chapter 2 of this pdf (got it from wikipedia) should help answer the question.: ftp://ftp.tik.ee.ethz.ch/pub/students/200.../SA-2003-16.pdf

Here are pros and cons for the more extreem examples:

NOTE: Server can mean a dedicated server, or the player hosting the game

Server/"thin" client: The server has the entire gamestate and transmits the state to the client, and the client transmits requests to alter the state.  There are low computational requirements for the client, but high bandwidth requirements, especally for the server. This can result in a laggy response. Advantages is that any attempts at cheating can be kept to a minimum as a well designed server has to authorize all incoming action requests as valid.  On the other hand if the server goes down, so does the entire game. But there is no risk of a client's gamestate from going out of sync from the others.  

Server/full client: The other extream is the client and servers all run the entire simulation. The server has the authoritative game state.  A change requested by a client is sent to the server and also processed by the client.  The server then propagates the change request to all other clients.  This increases the computational needs of the client but greatly reduces the bandwidth requirements.  Lag seems to vanishes as the client will update its own state before the server or other clients.  Cheating will require closer monitoring.  The server and clients will also have to make sure the gamestates match up every now and then.  Clients which gamestates differ can either get a new gamestate from the server or drop the connection.  A user could also access game state information of other players that he might not otherwise have access to in game.

For a client server model there are also all sorts of middle ground too.  Another smart way is to have the server have the full authoratative state, and each client also manages a copy of the gamestate that only the user can see (so the client gamestate show the map and process the user's own colonies, but has no information of the colonies of the other useers)

Peer to peer:  Is a lot of ways similar to full client server, except that there is no authoratative gamestate.  Each client is responsible for transmitting state changes to the auth clients, and the other clients are responsible for authorizing those changes.  The bandwidth requirements of a "server" are split among all the peers, but this causes bandwidth needs for each peer to grow expodentionally with each new peer.  The major advantage is that there is no server to lose the game, if a player is dropped the peers can renegotiate their connection and the game resumes (preventing the server/host dropping issue).
 
« Last Edit: February 23, 2009, 05:08:54 PM by croxis »
David - Proud to be saving the universe sense 1984
Open Outpost developer.  Project Page | Forum Thread

Offline Arklon

  • Administrator
  • Hero Member
  • *****
  • Posts: 1269
Outpost 3d Development
« Reply #108 on: February 23, 2009, 05:17:37 PM »
Most RTS's are peer-to-peer, simply because of the huge amount of stuff that needs to be simulated and synced. OP2 itself follows this model once the game is started (not in lobby).
« Last Edit: February 23, 2009, 05:18:08 PM by Arklon »

Offline WooJoo

  • Jr. Member
  • **
  • Posts: 90
Outpost 3d Development
« Reply #109 on: February 23, 2009, 07:17:24 PM »
the peer to peer system got an bonus which wasnt postet before. since it has the option that you can manualy like op2 chose your ip to connect to or you could use a hub server which provides open server(hosting clients) ip´s  which you can connect to for me this seems the best way since cheating can be stop with clients interventing unauth behavior like requesting informations or making unsync moves etc from the other client software etc  

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Outpost 3d Development
« Reply #110 on: February 24, 2009, 01:54:13 AM »
Unless it's an MMO, it's probably peer to peer.

Btw, peer-to-peer traffic does not increase exponentially. If you have n peers, where each peer has a connection to every other peer, then there are n^2 connections. That's only a quadratic increase. Far fewer than an exponential increase. Also, the more important point here, is that the traffic per node only increases linearly. That is, your own computer will only have n connections, even though the total number of connections between all computers in the entire system might be n^2.

I should also point out that any validity checks done by a server can also be done on each client. It's the same amount of coding either way. You write the checking code once.

The Server/thin client doesn't seem particularly relevant here. That would be like a web based game, where the web browser is a "thin" client, and doesn't know anything about the game, just how to display generic web pages. Not surprisingly, web browsers tend to be laggy and slow. The amount of traffic generated by such a game is usually quite large, and I wouldn't expect to find too many (if any) real time games that work like that.

If you want decent performance out of the game, you're probably looking at doing symmetric processing on all nodes, and just passing commands around. (NOP if they've done nothing, just to keep the timing and confirm that they've actually done nothing, rather than a packet was dropped). Usually, it's one packet type for every in-game command the player can order, but only so long as it actually updates game state. If there's a command to view some information menu, like the morale report, then other players don't need to know about that. It doesn't change game state, and so it doesn't need to be synchronized between computers. If they move a vehicle, or order it to attack, or self destruct, or for a factory to build something, then it needs to be sent to the other players. You'll probably want to do some filtering and dropping of certain commands to save bandwidth though (or rather, leave it to eventually time out and send a small NOP packet), such as they try to build something but don't have the resources. You might also want to drop certain move commands if it's redundant, such as telling the same unit or group of units to move to the same location. That also has the benefit of not having to run the path finding algorithm again, which is usually somewhat slow.

I should also stress the importance of pseudo random numbers here. If you send the same random number seed to each client, then you'll never have to send random numbers over the network, which can save significant bandwidth. If there's some melee of 100 units going at it, you don't want to be sending the huge number of damage values flying across the network (and would you trust them anyways?). Just initialize everyone with the same seed, and they'll all generate the same sequence of random numbers. Note that this requires the game engine to always use up those random numbers in the same order. So things like processing of players or units should be done in the same order on every computer. Don't just assume the local player is always processed first, and then all their opponents. You should probably just have everyone assigned a player number, and go through them in order each time, or something similar to this. (Perhaps process units in the order they were created, or the order they're placed in some internal array). This also has the benefit of making the game repeatable. This can be fun, in that it allows people to save replays of their game, but it's also very useful for debugging. If something goes wrong, they can save the replay (or an error handler can), which can be sent to the developer so they can repeat and track down the bug.

This also has anti-cheat properties, in that the only real way to "cheat" is generally by sending commands that a player could normally issue through the user interface. Mind you, you should do some sort of validity and sanity checks on the data. It's still possibly for them to say, issue a command to move a unit that they don't own. In cases like this, just check for these things, and drop the packet if it doesn't make sense. As long as you check for dumb things like this, it's pretty hard to cheat, short of making some macro/bot to play the game for them with unusually fast decision making. Of course, bots usually suck in comparison to real players at high level strategy, so they probably won't be winning out here anyways if they try this, unless they can still effectively interact with the game, and are also good players to begin with. Btw, those recorded games can also catch and prove someone was cheating if they do find a way to send invalid packets that didn't have proper validation code.


Real time games also likely use UDP, rather than TCP. Generally, TCP is too slow, and too overkill for a real time game. TCP has simplicity advantages with the timeout/auto-retransmit, but it's implemented using ACKs and NACKs. With bursty traffic, such as web browsing, ACKs are important, since the sender sends stuff unexpectedly, and it won't know if it's packet arrived, unless it receives a reply. In a real time game, you're sending packets constantly, at known time intervals, so you'll know if a packet was dropped because it won't arrive on time, and so you won't need to ever ACK. If the packet arrives by the time it's needed, then continue on, otherwise, the game has to pause while you request a retransmit. Although, you don't always have to wait that long before requesting a retransmit. If you know about how long you should have to wait, then you can make the request a little bit earlier than you need it, or if you're queuing a number of packets and one seems to be missing (i.e., you've received the later packet, but not the earlier packet), then a packet was probably dropped and should be rerequested.

You can also use the average timing between packets to set the game speed. If the game speed is set to run faster than the packets are arriving, then it will be pausing for each one. That can result in jerky performance. Particularly if the packets aren't arriving at perfectly even intervals, which is usually the case. If you've ever done any statistics in highschool, such as z-scores and bell curves, this might be a good area to apply that knowledge to.



I remember one of the best articles I read was about the design of Age of Empires. I just googled for the paper, and I came across this: http://www.gamasutra.com/view/feature/3094...88_network_.php, which seems to be what I read, or at least very similar to it.
« Last Edit: February 25, 2009, 02:58:43 PM by Hooman »

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Outpost 3d Development
« Reply #111 on: February 24, 2009, 12:30:32 PM »
Thanks for the great answers will read the article later.

Offline Spikerocks101

  • Hero Member
  • *****
  • Posts: 711
Outpost 3d Development
« Reply #112 on: February 24, 2009, 12:54:31 PM »
!OWNED!
I AM YOUR PET ROCK!!!!!!

Offline WooJoo

  • Jr. Member
  • **
  • Posts: 90
Outpost 3d Development
« Reply #113 on: February 24, 2009, 02:36:04 PM »
lol said almost the same thing about p2p system without the many words ^^

but its like this story of the 2 guys infornt of 2 doors and you need to find out who is lying
when there are many clients its much more easy to tell which client doesnt uses the generel rule set of the game or cheats ^^

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Outpost 3d Development
« Reply #114 on: February 25, 2009, 03:28:52 PM »
Sounds like the Byzantine General problem. Wikipedia:http://en.wikipedia.org/wiki/Byzantine_Fault_Tolerance

They're talking about faulty systems in that article, but in the case of cheating, that "faulty"/traitor is more like malicious/cheater.

I don't think that applies quite so well to this discussion though, since there are some fairly obvious rules to the game that can be checked against. Plus, each person is telling their own orders to everyone else. You're not relaying orders for someone else, and possibly changing their orders as you do it. In that regards, it doesn't allow cheating per say.

I suppose this could be used to force a desync though. Send different orders to different players, and if they both believe what you told them you're doing is true, then they will go out of sync with each other. Heck, you could even force which one drops by sending bogus data to that one person, and executing the correct command sent to everyone else yourself. Hmm..., that could be an interesting way of forcing one of your enemies allies to drop. But of course, that assumes you detect the desync, and your action in that case is to drop the people that don't agree with you. If you're saving replay data though, you could always resimulate the game from the beginning to find the point of failure, and try to recover. Of course, if this was malicious, you don't really know who tried to cause the problem. It may have been the person who sent the bad message, or it may have been the person receiving the message who pretended they got a different message than they really did. It still lets you narrow it down though, so you'd end up catching the person pretty quick. At any rate, this is really no different from Ham blocking, and people that try that stuff generally get banned pretty quick.
 

Offline WooJoo

  • Jr. Member
  • **
  • Posts: 90
Outpost 3d Development
« Reply #115 on: February 25, 2009, 03:45:49 PM »
the problem of desync is not real since each has its own ip and a port which is used to communicate so a false information can be filtered and wouldnt even affact any part of the active game

my point was about the peer2peer game since there is only a server to get the clients together like telling them the game partners ip´s and then leave them alone to play

one will host the game as a server/Client programm and the others who join in will be client only
then the rules surely apply that there is a common set of rules which each uses in base of the game but you wouldnt send "commands" which you use to command you units to the server

more likly you send a "like" map of you activitys like when you unit moved from 1x1 to 1x2 you will send the id of that unit and also the change of data

like

lynx
100%hp
loc:1x1

and you just update the known information
lynx
100%hp
loc:1x2

the known rule set of the server can search for un normal changes of the game like a lynx which moves 2 times its normal speed or a change of stats of units which wouldnt apply on the rules givin by the game

but still there are ways to cheat

if you server host has a different game rule set which has 2 rule sets one which is comform to the original and one which is a "mod" it would be posible to cheat

a system where the server external to an client (game server /) checks all changes is highly unusable since the connection speed wouldnt allow outside of an lan system to play at eyojable speed ^^

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Outpost 3d Development
« Reply #116 on: February 25, 2009, 04:29:36 PM »
Yes, what your suggesting with the server is both slow, and requires the server to be trusted. Unless it's an MMO, that's probably not a great setup. If a player is the server, then they can send whatever commands they want to cheat. As for checking things like unreasonable speed, that requires defensive coding, and it's much harder to forget to check something and let invalid packets slip through. In a setup where only commands are sent, and all moves are simulated using known rules, there is less checking required, and hence less possibility for the programmer to forget something which might allow cheating.


As for the desync, consider three players, A, B, and C. If A sends packet p1 to B, and p2 to B, where p1 != p2, where B and C use the recived packets in their simulations, then B and C will be out of sync. Hence, player A can force his opponents to go out of sync with each other. This has nothing to do with IP and port. It's to do with how much you trust traffic in a p2p setting.

If there is a trusted third party, such as a game server, they can collect and redistribute information so as to guarantee it is all consistent, but this will double the network latency. It also requires such a server to be maintained and paid for by someone.

Failing a trusted third party, you can have everyone tell everyone else what commands they've received, and make sure they are all consistent, but this will also double the network latency, and lead to the same situation as the Byzantine General problems, which means less than 1/3 of the players have to be lying to reliably detect who lies. This implies at least a 4 player game to be able to point any fingers. You do still know ahead of time before a desync occurs though.

You can also send game checksums every so often to make sure the game state is in sync. But the problem here is that you don't detect a difference until after the desync. Still, this is the cheapest method, and doesn't necessarily imply any extra network delay. It might just require an extra 4 bytes per packet (or every few packets) to relay the game checksums.


Keep in mind, that all that extra effort is only if you're trying to detect desyncs. You can always bury your head in the sand, and assume the game plays perfectly with no errors, and that noone lies. This is actually how Outpost 2 works, and it works reasonably well. It takes quite a bit of effort and knowledge for someone to develop this sort of hack, and if you properly validate commands, they best they can do with this hack is cause opponents to desync. Again, this isn't really any different from Ham blocking or similar, which is way easier to do. Granted, it might be nice to throw an error in the face of someone who tries (using game state checksums), rather than have the game silently continue on. Basically, make sure people aren't wasting time playing a ruined game where the players all see something different.

I would recommend either just sending game state checksums every so often to make sure the games are in sync (preferable), or just ignoring the problem (pretty standard, and quite acceptable). You really don't gain anything significant with the other methods, and they have significant cost that will affect playability.
 

Offline WooJoo

  • Jr. Member
  • **
  • Posts: 90
Outpost 3d Development
« Reply #117 on: February 25, 2009, 05:20:16 PM »
well from my point of view i though that there is a central host of a game that valids all actions as right so the only desync can happen to an client so if A is the game host C could be desync by a connection error

to counter work this problem you could liniar number all trafic packs so a failed package could be requestet also there is the posibillity to check against a failure if you use common networking systems like a 3 times repeat of the same package so a client would know if there was an error to the connection as implied by hte problem at hand there is never a fail prove solution the only way to counter work a desync is the mass of data send by the host if you asume that the host never is wrong so a desync that droped 1 package or 2 would be bufferd by 1000 which worked fine ^^


also for the part of posible corrupted files or something like that there is a posibility to use md5 as a checksum and check the files against online stored "auth" files  
« Last Edit: February 25, 2009, 05:28:15 PM by WooJoo »

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Outpost 3d Development
« Reply #118 on: February 25, 2009, 10:54:02 PM »
I think you're missing the malicious intent I was trying to illustrate there. Assume that A was trying to mislead the other players. Player A intentionally sent two different packets to two different players. Asking for a resend doesn't solve the problem. Player A can still intentionally send two different packets the second time. This is even worse if you assume the game host, who is a player, is trusted. (Let's say A is the host). That player could make arbitrary decisions about the game state and force them on you. If people get wind of the game working this way, they will almost certainly try to abuse this. A trusted third party is usually fine, such as a server run by the game producer, but that has ongoing cost for them to run. Plus, if the game relies on that server, and it goes down for any reason (such as the company going bankrupt), then the game becomes unplayable. Plus, as I said earlier, having to relay all the packets through a central validating server will double the network latency.

I would already assume linear numbers on packets, or else how would you detect if a packet was dropped or not? (TCP uses byte numbers rather than packet numbers, but it's the same concept). The linear numbers don't help prevent a desync when there is malicious intent. Even if you checksum game state, you wouldn't catch it until after the fact. Trying to undo a game cycle is pretty much impossible. Too much game state has changed, and some information is probably lost along the way. (Like say a unit blows up, how do you know a cycle later that it existed? Sure you could save each game state, but that's probably megabytes of data per frame, and at 30 fps or so, that adds up really fast). If you wanted to backup by one game state, you'd probably have to reinitialize from the start, and resimilulate up to the previous game cycle using replay data (initial state + player issued commands) or something. Suffice it to say, it's not a light operation.


Resending packets without asking for them will probably slow things down. Especially on low bandwidth connections. Some people are still on dialup. What you're suggesting with sending packets 3 times would triple the bandwidth requirements. That would quite possibly noticably degrade performance.

Ignoring framing overhead (PPP - Point-to-Point Protocol (dialup), or Ethernet), the IPv4 header + UDP header is 24 bytes. Additionally, you'll need space for the commands, which will probably include a packet number, a command, and maybe a game state checksum. If you can issue one command per frame, at 30 fps, that's a minimum of 30*(24+(6?..12?)) = 900..1080 bytes per second. If you resend 3 times, that's already 3 KB/s, assuming the player isn't doing anything. Most 56k modems are actually only 56k downstream, with only 33.6k upstream. And those are bits per second, not bytes. If that was all usable, that's 4200 bytes per second. Often there is some overhead on the line so you might end up getting less. Older serial protocols often has settings for a start bit and a stop bit, which lead to 10 bits sent for every byte (8 bits). I don't know if this is still relevant with todays modems, but if it is, that 4200 bytes is further reduced to 3360 bytes. Ok, so you still think that's do-able? Now remember that data is flowing both directions. you have about 1KB/s outgoing per opponent, and 1KB/s incomming per opponent. For a 6 player game, expect about 5 KB/s out and 5 KB/s in. At the full 56k, and getting a full byte sent out of every 8 bits transmitted (which is usually not the case, due to the overhead of the underlying link layer), you would have at best 7000 bytes/sec of transfer rate. If you play at most a 4 player game, and if you only send packets once, and they're all perfectly timed so there is no congestion, and there is no overhead from the underlying link layer, and the player never issues any real commands, and the moon is full, the year is a multiple of 12, and your system bus is facing east, you just might get smooth game play. ... and you want to triple the requirements?

Actually, to be fair, Outpost 2 has a lower command execution granularity than a frame. It's only every 1/4 of a frame, and I think it usually works out to less than 30 fps, so if you do something similar it won't be quite that bad. But still, the average packet size in Outpost 2 is definately larger than the minimum size I suggested above. (I think a NOP was 16 data bytes + the UDP/IPv4 overhead). But still, if you want the game to only run choppy for a bit when a packet gets lost, rather than all the time, then don't resend packets unless you have to.


Oh, and don't forget the latency. The larger the packets, the more latency there will be while sending them, particularly over a modem. For every byte, that's 8 bits/byte / 56000 bits/s = 0.14 ms/byte. In the case of Outpost 2, with 16 bytes per NOP, and 24 bytes minimum of network protocol overhead, that's 0.14 ms/byte * 40 bytes/packet = 5.6 ms/packet. That's just getting between the modem and the ISP of that player, never mind the rest of the internet, or any opponents they may be playing against that might also be on dialup. Plus, you may have to wait for other older incomming or outgoing data to send before you can send or receive that new packet. At 30 fps, that's about 33 ms per frame, so expect delays of a few frames once you account for the full cost of the network delay, and processing time of each frame.
 
« Last Edit: February 25, 2009, 11:07:35 PM by Hooman »

Offline WooJoo

  • Jr. Member
  • **
  • Posts: 90
Outpost 3d Development
« Reply #119 on: February 26, 2009, 01:34:19 AM »
just to underline with that md5 autch check i meant a game client file check so there is at least no corrupt game client content a trainer for running games would be hard to make but still if the third party is always evil it will happen that there is an atempt and i guess a complete use of an dialup connection isnt that bad since these ppl shouldnt watch youtube while playing ^^


in the end still there is no net code but maybe there are some other ppl that can deliver this component i dont remember if this project is complete open source or only part open source : )
« Last Edit: February 27, 2009, 11:47:28 AM by WooJoo »

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Outpost 3d Development
« Reply #120 on: February 27, 2009, 11:40:48 AM »
Man that is long answers... will have to read it more than once.

The game itself will be open source but probably not the tools as they can be used in other projects later in the future.
« Last Edit: February 27, 2009, 11:41:25 AM by Celledor »

Offline Spikerocks101

  • Hero Member
  • *****
  • Posts: 711
Outpost 3d Development
« Reply #121 on: March 11, 2009, 08:04:05 PM »
truth, i though source forge would be good enough, but hey, idk, i just like commenting.
I AM YOUR PET ROCK!!!!!!

Offline croxis

  • Full Member
  • ***
  • Posts: 147
    • http://croxis.net
Outpost 3d Development
« Reply #122 on: March 12, 2009, 03:46:36 PM »
Unless you are expecting branching and remerging I suggest Google Code (has SVN).  I'm not a terrible fan of sourceforge.  
David - Proud to be saving the universe sense 1984
Open Outpost developer.  Project Page | Forum Thread

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Outpost 3d Development
« Reply #123 on: March 24, 2009, 03:36:50 AM »
Will see if I use any of these when I start releasing code, I have had a lack of time to do any real work on the project latley so i'm still coding the tools.

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Outpost 3d Development
« Reply #124 on: March 31, 2009, 12:43:37 PM »
I give you pathfinding!

This is a little test program that I wrote to test the Truevision3D engines built in pathfinding system and I got it to work, still some smaller things to fix and I haven't tested in of large scale yet but it look promessing.


Here is a screenshot of the program:
http://www.veus.se/ForumPics/AiPathfinding.jpg