Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Program Announcements / MikeNet - Multiplayer Plugin

Author
Message
Tv Xxx
13
Years of Service
User Offline
Joined: 23rd Sep 2007
Location: Behind You!
Posted: 29th Oct 2008 23:12
Hi Mike,
Firstly, Great Plugin!

Just a little request for new version...

we all know that
127.0.0.1 = localhost

But if I do

ConnectIP$ = "localhost"
iConnect = mn Connect(ConnectIP$,ConnectPort,ConnectIP$,ConnectPort,Timeout, NoThreads)

It doesnt work, thus if i wanted to use my dynamic ip, as a .no-ip or what ever, i couldn't. so wondered if you could add that?

Thanks allot,

oh and any ideas on when the new version will be out? I like the sound of it

yours Tv

Airslide
16
Years of Service
User Offline
Joined: 18th Oct 2004
Location: California
Posted: 30th Oct 2008 00:46
Did you try just putting ConnectIP$ = "127.0.0.1"?

Tv Xxx
13
Years of Service
User Offline
Joined: 23rd Sep 2007
Location: Behind You!
Posted: 30th Oct 2008 00:50
Youve Missed the point lol,
i have a dynamic ip,
my ip now = 88.104.134.204

so i could release my game, people could play when my server is online,

but in what? 2 weeks my ip will change meaning the client will need updating, thus my ip can also be accessed via... http://roliolio.game-host.org/

but when my ip changes http://roliolio.game-host.org/ will be the new ip, but if i put that into maikenet, it doesn't work.

yours tv

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 30th Oct 2008 02:05 Edited at: 30th Oct 2008 17:46
It sounds like you want MikeNet to be able to lookup DNS names; this should be quite easy to implement.

I don't want to set a release date for the next version because I'm not good with deadlines. However, I will give you a rough estimate of somewhere between 2 weeks and 2 months. Mostly it depends on how much time I have and how many unforeseen problems I encounter.

[edit]
I had a very successful day today working on MikeNet so I may finish sooner rather than later
AlexI
16
Years of Service
User Offline
Joined: 31st Dec 2004
Location: UK
Posted: 31st Oct 2008 23:38 Edited at: 31st Oct 2008 23:39
Could you add the option to connect to TCP or UDP only not both ? Then it could be used to download webpages and stuff

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 3rd Nov 2008 20:35 Edited at: 3rd Nov 2008 23:42
I will look into making it possible to disable UDP. MikeNet uses a system whereby the first 4 bytes of a TCP packet indicate the size (in bytes) of the remainder of the packet. For compatibility outside of MikeNet, you must take this into account.
Airslide
16
Years of Service
User Offline
Joined: 18th Oct 2004
Location: California
Posted: 5th Nov 2008 02:28
Quote: "Youve Missed the point lol,
i have a dynamic ip,
my ip now = 88.104.134.204"


Your dynamic IP is not relevant to connecting to yourself. If you other people to connect, that's different. But I'm saying, if what you are trying to do is use localhost to connect to your own computer, you can just use "127.0.0.1" (as that seems to be what you implied by using local host as an example).

For what you are trying to do, surely you would use ConnectIP$="http://roliolio.game-host.org/", not "localhost", correct?

GIDustin
12
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 6th Nov 2008 01:20
Mike:

Since your multiple connections version is 2 weeks+ away, is there any harm in using your DLL and multisync both in order to get 2 connections working? Or am I stepping outside the bounds here?
Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 6th Nov 2008 08:50
I'm not sure if that would work but you can always try it.

I'm going to try and get it all ready for this Friday but failing that it should be done by next Friday. I've done most of the work and just need to test, document and do some finishing touches.
KISTech
13
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 6th Nov 2008 16:48
By multiple connections do you mean 1 Server and x number of clients? or client a connects to client b, client b connects to client c, client c connects to client d, etc..

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 6th Nov 2008 18:18 Edited at: 7th Nov 2008 00:02
Here is a brief explanation of how this part of MikeNet will operate.

An instance is either a connection or a server hosting which is setup with either mnConnect or mnStartServer. You can have as many instances as you want and although they run inside the same worker threads, they do not interact with each other. The new system will basically allow you to use multiple instances of MikeNet at the same time within the same application. You can be connected to as many different servers as you want and host as many servers as you want at the same time.

I have written an example which is a modified version of the cube world demo. In this example an application can host a server and be connected to this server at the same time. Most commands now have an instance parameter which allows you to specify which instance the command should apply to.

There is also a new way of using mnConnect. The last parameter (bool) specifies whether or not to block on the connection until the timeout expires. If you choose not to then you can use mnPollConnect to poll on the connection process and wait for it to complete whilst doing other things. You can use mnStopConnect to halt the connection process thus enabling you to include a cancel button.

Example:
KISTech
13
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 7th Nov 2008 02:10
I see.

I suspect when it's time to rewrite Worlds Apart Online, if I use GDK for the rewrite I'll give MikeNet a try before I think about moving to something as complex as RakNet.

You'll probably be much further along in development with it by then.

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 8th Nov 2008 22:04 Edited at: 8th Nov 2008 22:51
Version 1.0.7

I didn't quite manage to get everything done yesterday, but I did today There are some substantial changes to MikeNet in this version that greatly increase functionality. If you have any problems with MikeNet feel free to ask questions or report possible bugs.

Changes

1. Instances
New to v1.0.7 is the concept of instances.

Here is an explanation of instances which I posted earlier: "An instance is either a connection or a server hosting which is setup with either mnConnect or mnStartServer. You can have as many instances as you want and although they run inside the same worker threads, they do not interact with each other. The new system will basically allow you to use multiple instances of MikeNet at the same time within the same application. You can be connected to as many different servers as you want and host as many servers as you want at the same time."

Instances are setup with the new command mnStart which creates the worker threads and allocates memory to the instances. After using this command you can use instances by using the standard MikeNet commands in the same way you did in previous versions; the only difference is that now most commands have an instance parameter which is used to tell the command which instance it should operate on.

You can select any instance from 0 to one less than the maximum number of instances specified in mnStart and should not try to use an instance before mnStart has been used.

Instances can be shutdown using mnFinish; all instances can be closed and MikeNet shutdown by using mnFinish with a parameter of -1.

To continue using MikeNet without multiple instances simply set the number of instances parameter of mnStart to 1 and set all command's instance parameter to 0.

2. Connection System
The connection system has become more advanced. Previously mnConnect would block until the timeout expired or the connection completed. Now mnConnect has an additional parameter that allows you to choose whether or not you would like to block in this way.

If you choose not to block then you can use mnPollConnect and mnStopConnect to manage the connection process. This allows you to do other things whilst connecting and allows you to cancel a connection process mid way.

3. Domain Name Service
MikeNet can now retrieve IP addresses from host names. This is done using mnDNS. e.g. www.google.com returned 66.102.9.147 and localhost returned 127.0.0.1

4. Disable UDP
You can now disable UDP using mnDisableUDP. This speeds up the connection process and prevents wasted resources. It also makes compatibility outside of MikeNet easier.

5. Server Timeout
Since the new NAT connection system (in previous versions), the server would wait 5 seconds for a connection to finish. After this time the client would be dropped. Now you can change the timeout value using mnSetServerTimeout. The default value is now 10 seconds.

6. Strings
mnAddString and mnGetString have changed. In DBP the command names remain the same but do the same thing as mnAddStringC and mnGetStringC in C++.

The new commands allow you to choose whether or not you want to include a prefix of 4 bytes indicating its length. The reason for this is that there are many occasions where you can work out the size of the string using mnGetPacketRemainder.

As well as this, you can now use C strings as well as standard strings in C++ and have the option to specify whether or not to use a null terminator.

To continue using strings in the same way as previous versions set the parameters as follows.

For C++ users:
-mnAddStringSTD([instance],[string],true)
-mnGetStringSTD([instance],0)

For DBP users:
-mn add string([instance],[string],0,1)
-mn get string([instance],0,1)

Consult the documentation for information on how exactly to use these commands.

7. Bug fixes
I have looked over MikeNet scanning for bugs and found only one. Clients could sometimes be disconnected or receive errors saying that a packet was received that was too large even when the buffer sizes were correct. This has now been fixed in v1.0.7 but if you wish to remain on previous versions you can get around this problem by doing the following. Note that you only have to do this on previous versions:
-If the TCP receive buffer size is below 2048 times it by 2.
-If the TCP receive buffer size is 2048 or above then add 2048 to it.

Final Words
C++ demo examples now have project files included and the documentation and examples have been fully updated. I hope you enjoy using the new version, let me know if you have any problems
KISTech
13
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 9th Nov 2008 00:00
Makes me want to take the weekend and rewrite my network code.

GIDustin
12
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 9th Nov 2008 05:02 Edited at: 9th Nov 2008 05:05
Thanks for the new DLL. I immediately set to work on my battle.net type thingy.

One problem though. I can't seem to get sending and receiving strings with the new version.

In the INI file, mn Get String says "mn get string(instance, length, Null Terminated)" but when compiled with 3 arguments I get errors. If I change it to a single argument it compiles, but I dont think it actually works.

The same for mn Add String. The INI requires 4 arguments, "Instance, String, Length, Prefix", but it wont compile with more than 2. It says:

Parameter for 'mn Add String' do not match 'Instance' at line xxx

I checked your post above, and saw:

Quote: "
For DBP users:
-mn add string([instance],[string],0,1)
-mn get string([instance],0,1)
"


but I think something else is wrong here. And neither of the demos you send with the file show how to do strings.

Any advice would be greatly appreciated.

- Dustin
Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 9th Nov 2008 12:27 Edited at: 9th Nov 2008 13:00
I made a mistake in the DBP link table but have fixed this now in build 2 of 1.0.7. Only DBP users are affected by this problem. I tested the new version with the following code and it is working fine:

Client


Server
Tv Xxx
13
Years of Service
User Offline
Joined: 23rd Sep 2007
Location: Behind You!
Posted: 9th Nov 2008 13:55
I cant get mn dns to work.

heres my code



should output the IP of http://roliolio.game-host.org/,
but i just get ther error,

Quote: "User function "mn DNS" must return a value if in an expression"


also, do I even have to use Mn DNS or can i just do...



Yours Tv.

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 9th Nov 2008 15:25 Edited at: 9th Nov 2008 15:26
This is due to another mistake in the link table, in build 3 this problem is fixed. Sorry about these link table problems, I will look over the table tonight to check for any more mistakes.

You do need to use mn dns when using a host name, otherwise it will not work. mn dns("roliolio.game-host.org") returns 88.104.195.149.
Tv Xxx
13
Years of Service
User Offline
Joined: 23rd Sep 2007
Location: Behind You!
Posted: 9th Nov 2008 15:26
Cheers Mike
woo woo Thats my IP

yours Tv.

AlexI
16
Years of Service
User Offline
Joined: 31st Dec 2004
Location: UK
Posted: 9th Nov 2008 16:35
GIDustin
12
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 9th Nov 2008 21:43
Build 3 seems to be working perfectly. Thanks for the fast fix!
Tv Xxx
13
Years of Service
User Offline
Joined: 23rd Sep 2007
Location: Behind You!
Posted: 9th Nov 2008 23:25
Ok Mike, I've been going through my server checking everything and its all working great apart from one bit!

ok, my server has a toggle, so you press a button and it turns of the server (for maintence ect...) but when i turn it back on i get an error, and the server crashes,

heres there error..


IMAGE LINK

What happens Is When The Server Toggle Button Is pressed is, i use mn finish -1, then goto Start, so it goes back to the start of the code, and waits for the server toggle button to be pressed again, to start again, but when you click the button to restart the server, i get the error.

So any ideas?

Yours Tv.

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 10th Nov 2008 00:36
There appears to be a problem with mnFinish, an error code of 10048 means that the address is still in use. I will look into this and get back to you.
GIDustin
12
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 10th Nov 2008 01:09 Edited at: 10th Nov 2008 02:00
Three more quick questions.

mn Disconnect Client when used on the client machine "does the same as mn finish". What if you want to disconnect from the server, but want to use that connection again later, and therefore dont want to mn finish just yet?

Second, how secure is this? If I were to implement a username/password system into my game, are these packets easily "peeked" at? Should I be ok if I personally encrypt/decrypt the information I send?

Also, any chance of adding IPX to the available transfer methods?

So far I love the DLL, keep up the good work.
KISTech
13
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 10th Nov 2008 17:20
That would probably be related to the same issue with mnfinish. Must not be fully releasing the connection.

You should be fine using your own encrypt/decrypt. Otherwise everything is sent in the clear.

Why would you want IPX? Local LAN games?

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 10th Nov 2008 18:16 Edited at: 10th Nov 2008 18:17
I'm trying to work out why this error 10048 occurs. I have narrowed it down to a problem with UDP sockets and although the socket is being closed, it does not seem to take effect instantly. While I was testing I found the error only happens if I use mnFinish and then mnStartServer simultaneously. I also found a memory leak in mnFinish where memory is not deallocated properly but I have fixed this now.

@ Tv Xxx
Do you get this error only in the situation I described above?

@ GIDustin
If you use mnDisconnectClient or mnFinish on an instance, you can reuse that instance afterwards. mnFinish simply resets the instance so that it can be used again with mnConnect or mnStartServer.
Tv Xxx
13
Years of Service
User Offline
Joined: 23rd Sep 2007
Location: Behind You!
Posted: 10th Nov 2008 18:57
Yer, thats the only time i get there error, after running mn finish -1 the restarting the server using mn Start Server.

Yours Tv.

GIDustin
12
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 10th Nov 2008 18:57
Quote: "Why would you want IPX? Local LAN games?"


Exactly. I am not sure how, but with IPX if someone on LAN hosts, the other LAN computers know about it without having to type an IP or DNS or anything. My next game was going to be a LAN type one, so I have much time before then.

@ Michael P

ok, sounds good. From the documentation it sounded like mn Finish released memory and you would have to redo the local settings. I can't quote anything though as I am at work atm. Thanks for the quick response.
Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 10th Nov 2008 19:20
Quote: "ok, sounds good. From the documentation it sounded like mn Finish released memory and you would have to redo the local settings. I can't quote anything though as I am at work atm. Thanks for the quick response."

Memory allocated during mnConnect/mnStartServer is deallocated by mnFinish. Are you thinking that in some circumstances it would be more efficient to leave the memory allocated by mnConnect so that the instance could be reconnected without unnecessarily releasing memory? This is true, but I don't think the added complexity is worth the small performance boost.

Quote: "Exactly. I am not sure how, but with IPX if someone on LAN hosts, the other LAN computers know about it without having to type an IP or DNS or anything. My next game was going to be a LAN type one, so I have much time before then."

This is something I am planning to try and implement some time in the future.
sydbod
12
Years of Service
User Offline
Joined: 14th Jun 2008
Location: Just look at the picture
Posted: 11th Nov 2008 04:38 Edited at: 11th Nov 2008 04:41
Quote: "Exactly. I am not sure how, but with IPX if someone on LAN hosts, the other LAN computers know about it without having to type an IP or DNS or anything."


This not ONLY applies to PCX based Lan connections. With those games, the same will also happen when using TCP .

It is more a case of the client making a broadcast request to any machine on the network to respond if it is running a matching server.
If the client machine gets a response from a machine, then it knows what that machines Mac address happens to be and therefor has all the info to be able to connect.

It is all MAC address based and that is why it can not be implemented when there is any form of routing involved (ie internet or subnets).

IPX would not be a good thing to use anymore because most peoples machines by default do not have the IPX protocol installed in their operating system. You would risk creating problems for your target market.
Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 11th Nov 2008 17:25 Edited at: 11th Nov 2008 17:26
Version 1.0.8
In this version are bug fixes to the following commands:
-mnConnect
-mnStart
-mnFinish

mnConnect sometimes returned incorrect values or failed to connect inexplicably. mnFinish and mnStart could cause crashes in some situations and due to a bug in the worker thread mnFinish would sometimes be unable to close the UDP socket. mnFinish did not always deallocate memory correctly.

As well as this some commands that return strings suffered from a memory leak. This problem only affected DBP users.


As a consequence of the above fixes, Tv xxx's problem of error code 10048 when binding a socket during mnStartServer has been fixed. I tested this with the following code (written in DBP) and found no memory leaks, errors or crashes:

Test 1 (mnFinish -1)


Test 2 (mn Finish 0)



Let me know if you have any problems with this or if you find any more bugs
dale2507
12
Years of Service
User Offline
Joined: 1st Apr 2008
Location: My own little world...
Posted: 11th Nov 2008 21:10
mn finish -1 works now on game me an Tv-xxx have been workin on.
Tv Xxx
13
Years of Service
User Offline
Joined: 23rd Sep 2007
Location: Behind You!
Posted: 11th Nov 2008 23:27
Yerp, I Can Confirm, It WOrks Now, Cheers Mike,
Your A Legend, Just To Spread The News, The Game We're Working On (Me and Dale2507) is Called Roliolio. and Is Due To Be Released On the 12/12/08. Thats All I'm Saying, The Rest Is A Suprise

Yours
Tv.

Tv Xxx
13
Years of Service
User Offline
Joined: 23rd Sep 2007
Location: Behind You!
Posted: 12th Nov 2008 21:42
Sorry For The Double Post People, But Ive Been Looking At Adding Instances, and I dont understand it , I Read the C++ code, but my C++ is A lil rusty, Could You put together a DBpro example showing multiple instances?

Thanks Allot.

Yours Tv.

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 13th Nov 2008 00:00
Here is a nice simple example that shows how you can run two servers at the same time that do different things within the same application. In this example the cube world demo server and the file transfer demo server have been combined. You create all of your instances with mnStart and using the instance parameters apply MikeNet commands to those instances. If you have any questions feel free to ask, good luck with your game btw

dale2507
12
Years of Service
User Offline
Joined: 1st Apr 2008
Location: My own little world...
Posted: 18th Nov 2008 10:39
@Micheal P
Is it possible to make the dns command return a blank string instead of a huge error message asking if you would like to exit

Thanks
Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 18th Nov 2008 17:10
Normally you will only get an error if there is something wrong with the host name e.g. it does not exist. You can disable error message boxes using mnDisableMessageBoxes() although this is irreversible. I will add mnEnableMessageBoxes() so that you can disable message boxes for mnDNS only.
dale2507
12
Years of Service
User Offline
Joined: 1st Apr 2008
Location: My own little world...
Posted: 18th Nov 2008 19:40
Thanks it just get's slightly annoying when ur not connected to internet
dale2507
12
Years of Service
User Offline
Joined: 1st Apr 2008
Location: My own little world...
Posted: 29th Nov 2008 15:06
Hey everyone

I know how annoying it can be using dbpro and not having html help files for mikenet so i made a program to create all of the seperate files from the exported word document. It makes a list of all pages as well.

Enjoy!

Attachments

Login to view attachments
Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 30th Nov 2008 20:33 Edited at: 1st Dec 2008 00:08
@ dale2507
Excellent , any chance you can post the program you used so that I can keep the HTML up to date with future releases?

[edit] Nvm, I worked out how to do this with open office

@ all
I am working on the next version of MikeNet and here is what will be in it. I have implemented all but the last two so far:
-Broadcasting capability: this enables messages to be sent from one device to all other devices on a LAN without having to setup a connection.
-Ability to re-enable error message boxes after disabling them.
-Catch all UDP mode which does not discard any packets, allowing you to decide which ones to drop after calling mnRecvUDP.
-Ability to list available local IP addresses.
-Fix to bug where mnGetLocalIP returns 0.0.0.0 when MikeNet allocates the IP automatically in server state.
-Improved packet system so that you are not restricted to creating packets on a per instance basis.
-Advanced feature for C++ users: Optionally, instead of using the mnRecv commands you will be able to set an application defined function to be executed every time a packet is received. This will result in a reasonable performance boost.
dale2507
12
Years of Service
User Offline
Joined: 1st Apr 2008
Location: My own little world...
Posted: 1st Dec 2008 13:50
Quote: "
Excellent , any chance you can post the program you used so that I can keep the HTML up to date with future releases?

[edit] Nvm, I worked out how to do this with open office
"


All program does is split export based on <h2 and then recompiles it all as seperate html pages. Can compile it if u like an post (It's not written in AutoIt).
KISTech
13
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 9th Dec 2008 20:31
I have to admit I wouldn't know exactly how, but could this be used in VB.Net or C#.Net?

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 9th Dec 2008 21:00 Edited at: 9th Dec 2008 21:01
@ dale2507
Don't worry I have worked out how to do it myself, thanks anyway

@ KISTech
I'm sure it can be converted but I don't think it is compatible in its present state. The problem is I have no experience in those languages so it may be a bit of a struggle for me to convert. Regardless, I will have a go at some point so expect to see a .net version in the future

@ All
I don't have much time at the moment to work on MikeNet but the next version (features posted earlier) is almost ready and I am currently adding finishing touches and updating the documentation & demos. You should be pleased to note that in terms of usage the changes are not massive and so it won't take much time for you to convert code from the previous version to the new version.
AlexI
16
Years of Service
User Offline
Joined: 31st Dec 2004
Location: UK
Posted: 9th Dec 2008 21:08
Does MikeNet this work with non-GDK programs ?

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 9th Dec 2008 21:21
Yes e.g. the file transfer demo is in console mode.
AlexI
16
Years of Service
User Offline
Joined: 31st Dec 2004
Location: UK
Posted: 10th Dec 2008 14:54
Ok, I am moving to IrrLitch now but will continue to use MikeNet

Does this use WinSock? Any chance for linux/mac support? I don't desperatley need that it would just be useful

Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 10th Dec 2008 15:36
It does use winsock. I'm not sure about compatibility outside of windows, so far as I know winsock is only compatible with windows and since MikeNet is based on winsock there is no easy way for compabilitity with linux/mac.
AlexI
16
Years of Service
User Offline
Joined: 31st Dec 2004
Location: UK
Posted: 10th Dec 2008 19:08
Ok, I guess you would have to use sockets then in Linux

GIDustin
12
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 16th Dec 2008 03:37
Mike:

My game is going great, however I just spent the last 3 hours debugging a problem. Since I had just finished another 300 lines of code without testing, I was sure it was my fault.

I dont think it was.

The code I wrote was connecting to a second server and not blocking the connection. The game compiled fine, but errored out when I ran it. To narrow down the problem, I made a test program:



The error I get when attempting to run the above is:

Could not find function 'Instance' in 4:MikeNet.dll

Lemme know what you think. Am I doing something wrong?
Michael P
14
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 16th Dec 2008 08:50 Edited at: 16th Dec 2008 08:51
The problem appears to be with mnStopConnect since when I remove that it works. I remember whilst re-documenting MikeNet I noticed that in the prototypes list mnStopConnect had a return value of int, but should be void. This is the cause of the problem.

I'm going to do my best to get the next version done by the end of this week which will have this bug fixed. Note that this bug only affects DBP, C++ seems to ignore the mistake.

Login to post a reply

Server time is: 2021-02-27 21:43:53
Your offset time is: 2021-02-27 21:43:53