Warning: Parameter 1 to NP_Poll::event_PreSkinParse() expected to be a reference, value given in /home/pokelege/public_html/nucleus/libs/MANAGER.php on line 370
The Project Gamma Development Progress Blog » Archive
The Project Gamma Development Progress Blog

Update on the server

Apr 30, 2009 by DX-MON |
Well after much thinking, we have now got a fully working system for working out how much time is left on any account in the game. The server will do all those calculations on auth time, and we have plugged about 4 memory leaks in both the server and client today. This is on top of a rewrite of part of the client core to allow for returning to the connect screen when there is an error such as a bad user name/password.

Currently the client is written such that it can't tell if the user name/password is bad explicitly, but instead "listens" for the server dropping it's connection to the client. This means that the client relies on the recv time-out to get out of the connection system - something that needs rewriting and sorting out on both client and server as they both rely on that as a mechanism for erring when needed and I do not like this as it causes the client to seem to hang when it is in actual fact just stuck in the recv function.... As I've commented - something for a rewrite.

I'm looking that by the end of tomorrow I have re-written bits of and bug fixed the internal tool that needs redoing for generation of maps. I will also aim to have rewritten the error management between the client and server so that the one that errors sends a message to the other telling it that an error has occurred before killing the connection, instead of just killing the connection.

The auth system

Apr 29, 2009 by DX-MON |
Well after about 2 hours of development, the MySQL queries to do with play-time and other similar things are now written. This means the client and server are about 40% of the way to having a game map that users can move around on. that means that the authentication systems are about 50% complete, the other 50% being the other fairly large query that has to be made during authentication.

I cannot say and details, but the game is going to have a form of subscriptions, this is because I (lead developer) need to cover the cost of developing such a large piece of software, and I also need to pay for the server (physical computer) that the servers (software) will be running on, and those don't come cheap.... especially when you a student ($25 a month may seem nothing, but £21 a month is a large amount when you're on £20 a week).

PS: The $ and £ symbols were used correctly here - my hosting company asks for $25 a month, which is about equal to £21 a month - my currency is GBP.

Update on the server

Apr 29, 2009 by DX-MON |
OK, after much time spent in debug mode, I have finally found the solution to my issues with the authentication queries. The server and client are now able to connect, auth, and start talking to each other.

I will continue updating as things progress today, so expect a lot more posts.

Server Updates

Apr 29, 2009 by Cthulhu |
As of today, the original problems with the Database server have been fixed. All that remains is to set up the server
to accept user login info and to cross-reference their ID's to what's stored in the server's database. However,
the issues with MySQL (from what I know) are still on-going. Support from the dev team has been worse than

DX-MON: The issues with the MySQL server arise during client authorisation. The issue is that a NULL result set is returned from the database query causing the server to exit the client thread and go packing. I will (as Cthulhu correctly said) update here again when there has (or hasn't) been progress with the bug.

Updates will be posted as they come. DX-MON will also edit this later on to add/correct information, so check
back later on Wednesday.

Edit (DX-MON): Thanks for prep-ing this, Cthulhu. Just corrected the only mistakes I could see and I've added a little about the actual issue with the MySQL stuff

Update on the server issues

Apr 27, 2009 by DX-MON |
Well after a weekend of trying to sort out that server and having not much progress, I have resigned to posting on the MySQL site asking for help regarding sorting out the call in the server into the MySQL Embedded Server library that fails.

I have got no way to develop the game for the moment till that embedded server is up and running, so please be patient while I wait for a responce on their forums

On a lighter note, I will be working on re-writing one of the dev tools so we can start working on the maps for the game again.
I will update later today with the progress of the rewrite and with a plan for the rewrite of the tool (Called MapMaker - you may get to see this once the game is released, it depends a bit on what the team feels should (or not) be done and wether we'll allow you to create your own maps, etc.)

The Database server

Apr 25, 2009 by DX-MON |
Well after 2 days of working on the database server, we end up with a piece of software that theoretically works.... however, after having resolved some link issues regarding 2 different libraries with 1 letter difference this morning, we have been having awful problems with the MySQL function mysql_server_init(). When called in the current server it just causes the server to crash for reasons that I will not specify here, but that I have traced.

Unfortunately the whole server hinges on that call as it is the one function that initializes the MySQL server for use in the server..... and helpfully (sarcasm here) the MySQL AB have only provided that one function to do exactly that....... so if I can't work out how to sort it out then I will have to severely rethink how the database server will function and what backend it will have.

I'll post back here in the morning when I've had time to think on this..... should be interesting what the grey-cell matter pulls up out of it's murky depths.

Server issues

Apr 23, 2009 by DX-MON |
You may have noticed that I have not posted in 3 days, this is due to some server issues accidentally
caused by my hosting company, but after an email explaining the issues, they have duly sorted those
issues out and various things that had gone missing or were broken/corrupt are now fixed again,
including this dev-blog

Anyway the real point of posting today is to say that over the last 72 hours we have written the basic
MySQL server systems for the game, and have also revamped an internal tool I wrote that pertains to
being a chat server, this has yet a lot more work to do in order to introduce autonomous channels, but
for the time being I can program the game client to connect to these two servers that server 2/5 of
the game at least and get things running correctly. I will update again tomorrow all things considered
that the blog stays in tact before I get back from college.

The Connect screen

Apr 21, 2009 by DX-MON |
Well I did as I said, and I've re-written the program structure to allow for the Connect screen, I've
also got the Connect screen linked up to the game and working (to the point that it starts off it's
connections thread) so that once I'm finished writing the connect screen, we can look to start
developing the game itself.

As I said on my last post, I will not/cannot post screen-shots of this screen. This is partially because
it is not really possible at the moment, and also partially because I need to leave some element of
surprise in the release of the game otherwise there's not much point.

It has to be said that without the game engine and it's numerous (all-be-it needed to be cleaned
up) API functions I would not be able to even achieve as much as I have with this game, let alone
created an entire screen in 1 evening flat (being I'm now back at college since yesterday (20th)
and do not get home till 5:40pm GMT + 0)

The Connect screen

Apr 20, 2009 by DX-MON |
Well today was spend drafting the graphics for and actually implementing the Connect screen.

This is the front-end the game has been waiting for as it gets down to business and kicks off all the connections to the servers, etc., and as I'm in the mood for it, I'll be creating an Update utility that will check the servers for new releases and will ask you to download a new one should there be a new release (Easier to implement now than later!).

Once we've got the screen working, although we won't post screenshots of it, we will continue updating the blog with the development of the actual game - the game itself will have screen-shots posted every so often, especially when new technology is added to the game engine. Though once I've added sound to the engine, I will not be able to post a screen-shot of it as those aren't audible (You'll just have to believe me till the first release of the game).

Also, there is a re-write of the main game control systems and interfaces present in the client due tomorrow to allow for the Connect screen to work as intended and cause the game to flow right into full screen (or windowed) mode play when we've done all the preliminary work to getting the client to the state of being able to log into our servers (which I am developing alongside the client, so any bugs introduced into the protocols of either will be found before the software gets released - it's a trick I learned last time I developed Server-Client software).

Anonymous Password entry

Apr 19, 2009 by DX-MON |
OK, so last entry I talked about adding anonymous entry for Passwords, and that is exactly what I've done.
below is a screen-shot of this using the latest internal tech-demo:

Anonymous Password entry using *'s

The fix to those input issues

Apr 19, 2009 by DX-MON |
Well in the end, the "bug" was never found, but the reason for it occuring has been......

The engine has been returned to it's "dumb" state with regards to rendering the input to screen...... it was going to be written to be cleaver enough to generate the structures needed the first time the function that controls the rendering was called, that was what was going wrong (somehow)..... so that set of calls has been removed and the structure simplified to getting the right info from the lay_fs structure in the old way

instead, it is now up to the client application to call the structure generating function and to set things up for the input overlay system.....
so control is now in the client application where it began when the code worked, so fixing the bug (could it be something like a stale HDC being passed (and used) causing the bug on the preferred method? or is it just an M$ bug in their compiler or OSes?)

I will post screenshots of this once I've implemented the password anonymity system.

Issues with the new input system

Apr 19, 2009 by DX-MON |
Ok, so I know it looks like I got it right the first time round, but for some reason, something's stopped working and the input system is now causing text that is 1 character-code out from what it should be to be displayed...... IE D now displays as C.....

been looking at a fix, I can either re-align the letters by changing the base-number for font-rendering in OpenGL, which works, but is hack-ish...
or I can modify the input to the render function (which on running the debugger on it, is correct) to take into account the difference between display and input..... again hack-ish.....
or I can modify the input as it's typed - again hack-ish....

not sure why this is happening all of a sudden, but in 5 builds of Future Consciousness and PokéLegends it has broken....

I'll post again once I've thought some more on a fix for this bug
I'll also include in that post what I do about passwords and needing to make them anonymous.... (Put *'s on screen instead of the actual password and store the actual password somewhere behind the scenes)

Development of the input systems

Apr 18, 2009 by DX-MON |
Well after a large quantity of preparation yesterday with regards to writing the input bindings, I have now written the text input routine to allow for input to the UserName and Password fields of the system.

Screenshots follow... The first shows the input bindings as per yesterday's content attachment tests where I hard-coded to the Game Engine the text shown in the boxes and successfully had the engine displaying the text in the right location. The second shows today's efforts with regards to the input routines. I typed the text into those boxes myself via that interface, there is no hard-coding of values there at all.

The working input bindings, without the input routines
The input bindings, with the input routines

Reflections on the ToDo list

Apr 17, 2009 by DX-MON |
Well I did all the items on that TODO list other than the clipping routines, however I did something else instead of that, so it's not I can't do what I set myself.

What I did, well I've writen routines to do the loading of images instead of the client program having to be smart and do that itself....
I then set about taking the test app and moving it's source file to the Gamma source tree out of the Future Consciousness one.....
Once I'd completed that and had a working debug version compiled without sound, I then set about cleaning up routines and calls....
On completion of that I've then scripted the build environment for both sets of projects to refresh key files on each build so that the right files are always in the right locations.....
And I've writen the release configuration for the Gamma tree as well as modifying the debug configuration to append _d to all executable files so they are known to be debug.

Sumary, we are now ready to begin development of the text input routines now we have a tried, and tested, way of outputting input to screen in the right location. This means time to start work on the game servers!

Final thoughts of the day

Apr 16, 2009 by DX-MON |
Well it's the end of my development day, I'm heading off to bed now, but as a reminder for the morning....:

  • Add function to fetch User Name and Password MouseOver structures

  • Bind said structures to structures in the Login Screen executable that hold the current values of those boxes

  • Write the text-input routines that use those bound structures to draw the text to the right location on screen

  • Write routines to clip input to the bounding box of the input boxes

  • Modify the MouseOver structures to describe the font to use in the input boxes, create flags to indicate if the font is the same as that used in the rest of the screen

Wow, what a TODO list, and that can only get longer as beginning of the summer term approaches, and life at QMC is going to get quite hectic coming up to the exams.

PS: Side note, need to move the audio routines from the login screen "dumb" executable to the game engine..... Start writing the audio core.

Ok, so I said I'd update here when I was done

Apr 16, 2009 by DX-MON |
I have now completed the work of re-engineering the calls made to glDrawPixels for the login screen you saw in Nny's post. The only thing that is left to do to the screen from the basics point of view is to port the changes over to the Mouse Overs for the exit button..... but that is fairly simple now.

Below is a screenshot of the login screen as it now stands with the new methods, including a Primitives Count and a much healthier Frames Per Second count.

The revamped Login Screen

The FPS of the login screen

Apr 16, 2009 by DX-MON |
Well as you saw from the last post - by Nny, we've been working quite hard on developing the login
screen for the game, and developing the Game Engine it uses - Future Consciousness. As you also
saw, the Frames Per Second (FPS) count on his computer got very low at one point, this is due
to use making calls to glDrawPixels.... so, what to do about it?! Well I (The lead programmer)
have started work in writing the code needed to convert the images to gl Textures so they can
be drawn via using glVertex3f() and glTextureCoord2f(). This works in principle, but it seems
that in practice it may break quite a lot.

I'll update the blog with more when I actually get the results I wanted and post some screenshots
of the screen showing the new FPS on my crappier Development computer and the number of
primitives present in the screen