Development blog (ish)

Use this forum for discussions on the upcoming Instant Messenger and game application.
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Tue Oct 13, 2015 2:08 pm

I might release the client later but probably not the server applications. I'll have to add some more comments and clean up the code a bit first to make it worthwhile though.
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Sat Oct 17, 2015 6:41 am

Working on the smilies at the moment....currently all of AGN's forum smilies have been "imported".
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Mon Oct 19, 2015 7:34 pm

I've done over 270 lines of code today....all to do with smilies. :SByay x 42
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
kelico
Super poster
Super poster
Posts: 2424
Joined: Tue Jan 13, 2015 11:58 pm
Medals: 5
Referrer First year AGNer Kiloposter HoW access AGN Artist
Has Liked: 1264 posts
Liked for: 830 posts

Re: Development blog (ish)

Postby kelico » Tue Oct 20, 2015 5:49 am

Doctor Azo wrote:I've done over 270 lines of code today....all to do with smilies. :SByay x 42


Wow! That is awesome! :SByay :SByay :SByay :SByay Totally worth it. :[:D]
Elbows. I gots 'em.
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Tue Oct 20, 2015 10:19 am

It wasn't that incredible since most of it was copy+paste. :[:P]
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Wed Apr 12, 2017 8:12 pm

So lately I've been thinking of resuming development, and with a few more ideas to add to AGNIM it might be worth it after all in the long term. However there're a few things I need to address....I'll list them here to remind me later:

  • I'm going to need to review pretty much all of the code, and maybe make some changes. This could take a while because it's been so long.
  • I need either to allow multi-logins or the ability to kick the other client off, with the logged in being alerted. The latter would be easier and less messy.
  • Currently it uses Lidgren, which uses UDP only (with it's own reliability management) and doesn't support IPv6 without some modification. Worse, the last update to the build was done over a year ago with some of the requests still not fulfilled after several years. I've found one alternative already: http://www.networkcomms.net/. But is it very similar to Lidgren, requiring not so much revision and editing? Am I going for a TCP and UDP setup? Lidgren accepts multiple variables (like Bytes, 32 bit unsigned integers, Strings, etc) and it converts, writes the bytes to a buffer and back again automatically....does this one do that too?
  • Reinstall Xamarian and all its dependencies, learn C#, test on mobile. But the main AGNIM client wouldn't be directly compatible with phones other than Windows phones, which hardly anyone has. That means two versions....I doubt it'll be worth it for now.
  • And stuff.
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Tue Apr 18, 2017 11:13 pm

Reinstalled MySQL server, moved all databases and fixed problems after hours of trying to find what's wrong. Dear MySQL installer 5.5, if I tell you to go entirely on my secondary drive, you go on my secondary drive. Yours frustratingly, DA.

It's a slow start.
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
dykath
Jr. Community Manager
Jr. Community Manager
Posts: 1843
Joined: Mon Feb 08, 2016 5:25 am
Location: Laniakea, Milky Way, Sol system, Earth
Medals: 7
Referrer AGN's MC player Nothing personal boss! AGN's TF2 player Kiloposter HoW access
Bug finder
Has Liked: 208 posts
Liked for: 652 posts
Contact:

Re: Development blog (ish)

Postby dykath » Wed Apr 19, 2017 2:08 am

Doctor Azo wrote:Reinstalled MySQL server, moved all databases and fixed problems after hours of trying to find what's wrong. Dear MySQL installer 5.5, if I tell you to go entirely on my secondary drive, you go on my secondary drive. Yours frustratingly, DA.

It's a slow start.


ouch I hope the rest of your reinstall works better. and I also hope that the rogue A.I. that is making it so hard for you starts playing with another human toy.
I am who I am I don't need nor want a label I simply am who I am and your approval is not needed nor wanted I am me and me is pretty awesome.
the state of your life is nothing more than a reflection of your state of mind
If you never look up you will never see the sky, It may be raining but there is a rainbow above you
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Wed Apr 19, 2017 4:14 am

I stayed up longer yesterday to do all that. :[:P] Something they won't tell you when copying over the data directory (I know, should've just used SQL dumps): replace the ib_logfile0 and ib_logfile1 with the new/fresh installed copies. They're just InnoDB journals, so your data should remain intact as long as the previous MySQL server finished writing and closed down properly last time. Still I wanted (if not needed) to check, repair and optimise all that could so I manually fired up mysqlcheck.exe....which also was easier said than done. :SBuhuh
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
dykath
Jr. Community Manager
Jr. Community Manager
Posts: 1843
Joined: Mon Feb 08, 2016 5:25 am
Location: Laniakea, Milky Way, Sol system, Earth
Medals: 7
Referrer AGN's MC player Nothing personal boss! AGN's TF2 player Kiloposter HoW access
Bug finder
Has Liked: 208 posts
Liked for: 652 posts
Contact:

Re: Development blog (ish)

Postby dykath » Wed Apr 19, 2017 5:43 am

you know someday i may understand what that all means. but for now i wish you luck in your escapades in to SQL land
I am who I am I don't need nor want a label I simply am who I am and your approval is not needed nor wanted I am me and me is pretty awesome.
the state of your life is nothing more than a reflection of your state of mind
If you never look up you will never see the sky, It may be raining but there is a rainbow above you
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Wed Apr 19, 2017 10:47 pm

And remember....always escape your apostrophes inputted in a SQL statement. :[:P]
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Thu Apr 20, 2017 7:28 am

I've decided against NetworkComms, it's far too different from Lidgren which would require a lot of time and effort learning and especially for editing the code on all programs. Also it's sacrifices easy-to-understand code and efficiency for fewer lines and laziness....basically you have to add handlers for Objects (like variables and classes) and it "serializes" and "deserializes" (attempts to convert said data into byte arrays unlike Lidgren which you write one handler sub which proceeds to determine the message is a connection status change, an error, etc or data and try to read a certain number of bytes at a time in the buffer, allowing you to create/set variables on the fly, in a flexible and efficient manner). Things like CType() is generally frowned upon too because it's a dangerous (prone to errors) and inefficient (computationally expensive) way to convert data types....and it's a sign of sheer laziness....so should only be used where the procedure needs to be flexible (where we don't know the kind of data type that's coming through) and where we have an error handler. There's nothing to say the variable's bytes are written as efficiently and neatly to a buffer before being sent either. What if the data is checked and recast anyway? Still, the way to create connections, initialise, connect, handle events and data is too different and would require a huge make over of many hours of work. The principles of the examples and required methods are not compatible with my own either.

So this should keep things clear, and not delay progress any longer than necessary.
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Wed Apr 26, 2017 7:02 pm

Unfortunately there's a strange bug that's eating messages and I can't even begin finding out what's causing it....I've tried updates, rebuilds, using debug editions of Lidgren, etc....but nothing is telling me what's wrong....nought, nada, nothing. I don't even know what's changed since I last ran it but while the client "connects", the main server is (apparently) sending the packet(s) containing client keys (used for encrypting logins) but the client never receives them, there's absolutely no reason for it to do nothing. The only thing I can think of is MS has since changed some underlying network code (or something like that) and Lidgren (the network library that makes networking easier) hasn't updated to address that....either way I can't restore a working copy.

Lidgren is effectively dead, but the alternatives will be a nightmare to implement. This means it's going to take a long time and a lot of effort learning, testing and rewriting a lot of AGNIM. It might be better starting a fresh and copying much of the usable code I've done already but it doesn't mean it'll be quicker, just less messy and confusing.

Sadly there isn't enough interest or use (especially with Discord being mainstream) at the moment which is killing any motivation for doing the above, and resuming the ton of other work needed still. Yeah, a few active members is no where near enough. If I can't find a remedy for this soon I may have to cancel project AGNIM.
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Fri Apr 28, 2017 9:33 pm

nvm fixd

:SB:D

Spoiler:
I still don't know exactly what's changed to cause it (or can quite remember what I've done since the last test run) but I found out the problem outside of the Lidgren library and made a minor adjustment which now causes 100% successful connections instead of < 10%. :SByay

When the client connects, which involves a 3-way exchange before it's officially established, the server used to try to issue a public key (for encryption) very quickly after calling Approve() (which tells the managed network library to send a response to the requesting client and enter the 2nd stage) but if the connection isn't "officially connected" it won't bother sending any other messages to the referenced connection (peer class). So all I did was move most of the code (my own "connection" object initialisation and pub key issuing stuff) from the ConnectionApproval "event" (case) to the StatusChanged "event" (case) under the "Connected" sub case (which is always executed when the third and affirmative handshake arrives). So now it works without a flaw....and will even if the response from the client is significantly slower....
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Sun May 07, 2017 12:58 am

Depression strikes again. I was too busy yesterday to do much either. Sufficient progress has been made before that however. I don't even care about punctuation in this post. Because stuff?
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
dykath
Jr. Community Manager
Jr. Community Manager
Posts: 1843
Joined: Mon Feb 08, 2016 5:25 am
Location: Laniakea, Milky Way, Sol system, Earth
Medals: 7
Referrer AGN's MC player Nothing personal boss! AGN's TF2 player Kiloposter HoW access
Bug finder
Has Liked: 208 posts
Liked for: 652 posts
Contact:

Re: Development blog (ish)

Postby dykath » Sun May 07, 2017 5:58 am

well hang in their doc and in a few years time when I am done studying to be a computer network administrator. I may have some skills that would help out in this process, but tell then I'm rather not useful but if there is any way I could help feel free to ask im open to helping.
I am who I am I don't need nor want a label I simply am who I am and your approval is not needed nor wanted I am me and me is pretty awesome.
the state of your life is nothing more than a reflection of your state of mind
If you never look up you will never see the sky, It may be raining but there is a rainbow above you
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Mon May 08, 2017 5:55 am

So today I'm working on adding contacts/friends using the IM window to accept add requests. It's occurred to me before now that this is a lot of work for something rather simple.

So why is it taking so long? Security, reliability, efficiency and scalability to a certain degree. It makes efficient/compact logs of a lot of things, which'll help track down bugs and system failures. It needs to ensure both users and fake clients can't break anything. There will be additions, extensions and other changes that don't require so much over-writing. I need a flexible chat window that easily allows placement of smilies at least. I like to handle more things, like updating avatars, in a way that we can depend on and without wasting so much storage space or bandwidth. I'm also making this mostly multi-threaded, with managed "orders" that won't hold-up the server-sided systems or crash it or corrupt data. I even recently had to go over the DB and spent time revising and tweaking charsets/collations. And other stuff.

Making a flexible and durable program designed to serve many times the amount of registered members we have yet is easier said than done.
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Sat May 13, 2017 7:36 am

I'm still working on the contact adding feature....it's harder that it sounds because the invites are written to the DB in their own table, delivering a message to the contact until they respond to the request unless they're already a mutual friend....or blocked.

This is a must before any early testing because the only way to edit contacts so far is for me to manually do it in the DB. At least I'm making good progress since....
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Sat May 27, 2017 12:27 pm

Thankfully MySQL take hexadecimal literals (like "0x7B49FCA2") to represent binary data* in statements, and .NET comes with functions to convert byte arrays to hexadecimal strings.

It won't be long before alternative logins can boot other logins (by choice) and members can change passwords for that matter. Even more work needs to be done for adding contacts however.

(* = Raw binary strings, without text encoding or such, which beats putting in UTF or ASCII string characters that need to be escaped and can become malformed or mistranslated)
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein
User avatar
Doctor Azo
Head Admin
Head Admin
Posts: 2870
Joined: Tue Jun 17, 2014 1:02 am
Location: SW England, UK
Medals: 6
Referrer AGN's MC player AGN's TF2 player First year AGNer Kiloposter HoW access
Has Liked: 171 posts
Liked for: 1189 posts

Re: Development blog (ish)

Postby Doctor Azo » Tue May 30, 2017 5:44 am

Well it's taking more time to do the alt-logins. Basically the server needs to remember who's authenticated and going to answer whether to boot the former client or not, as well as to get back to them after they have been logged out - users must have been committed to the DB and offline cache to ensure data consistency and loose ends have been tied before the other client can (re) login. Plus error handling and logging (server logs) is a must. And some other stuff.

I'd say the login adjustments is more than 90% done, while the password changing is at least 50% done on the server side....but the add contacts feature is harder to say at this point because I've forgotten after focusing on the other things....but the majority of it is done. After this a lot of vigorous testing will be made before I can even think about early test release....
Community Rules | Newcomer FAQ | Our MC server FAQ | Our TF2 server FAQ
Need help with AGN? Check out the Tech forum.
Drop in suggestions or complaints in Suggestions forum.
Is it a private matter? PM me!
AGN's Twitter: @AceGamersNetwrk

"Creativity is intelligence having fun." - Albert Einstein

Return to “Development and Feature Requests”

Who is online

Users browsing this forum: No registered users and 1 guest