• entries
49
86
• views
34640

Spending far too much time on Empyrean Gate and University. Trading in Sleep for Coffee and Coke.

## Update!

I have updated my journal!

OK, well I was writing a Codifier that actually changed all my source code into nice colourful HTML, and that is all done, now back to working on my FireFly project...

Oh, I also have been working on my new website for the business I am starting, which I should finish sometime this month, so that should be up and ready for business.

Business doesn't start until the beginning of next year though, and if you don't live in the Toowoomba -> Brisbane area then my services are going to be of no use to you.

I also have started overhauling dwarfsoft.com and should have a new look up sometime after the Business site is done. Oh, and NO the Business site is not going to be hosted at dwarfsoft.com, I have another domain ready for that one... But for that you are going to have to wait and find out.

Cheers, Chris.

## Untitled

Another four exams down, and now into 'Semester' 3. I have landed myself a job in Government, so I no longer will be required to work excessive hours without compensation. I start that job on 11/12/06, in two weeks time.

Was just out at the pub with a work colleague who's last day was today. This left me in quite a state, which I am still recovering from. This week has been a fairly hectic one, with 2 exams and being informed that I have another test due before monday (for LAW). This is one reason why I headed straight for the put this evening.

## Uni and Forums

I have been busy of late with a few Assignments (which you should see above have diminished significantly). There are still some to go, but the majority of work is done for this semester. I am looking forward to getting back into Programming for next semester.

With all this work almost done, I am almost at the stage where I can put some more time back into Empyrean Gate. ArchWizard has added a couple of pages, but I have been living off 3 hours of sleep a night again.

The other thing that has been eating my time has been discussing the Columbine Game which is distastefully titled Super Columbing Massacre RPG. This game is significant, if not disturbing, but quite relevant today, given that nothing has really changed in society since that fateful day over 7 years ago.

Having suffered a lot of taunting at school myself and wishing to die and take others down with me I can sympathise a little for Dylan and Eric, but in the end despise what happened (and who really wouldn't?).

## Tired

I've averaged at between 3 and 4 hours of sleep for over 7 days straight now. Mostly due to assignment work. I added up some more content to the Empyrean Gate wiki wrt Cultures within the game.

I liked the distinct culture phases that were apparent in Diablo II from act to act. This was fairly well done, especially the melding of multiple cultures into an uber-culture (well, they were similar cultures anyway).

I have been trying to think of some more story fillers/side quests, and when I say 'some more' I mean 'at least one' ;). My brain really isn't functioning.

Oh, I got my results from the marketting assignment. What a lousy thing it was. 66%. But at least it isn't a fail (and its mostly to do with the fact that I didn't "layout" the PPT effectively. Who cares. I had the content!)

Anyway. Its time for me to get somewhere near the first 8 hours sleep in 7 days (I believe I am actually up near 14 days for sleep ranging between 3-6 hours per night)... Up until today I hadn't felt it. I really should not have been driving around today :/

## Time Management

I have been pushing hard to get a Management Assignment (or two) finished. They are both due this Friday, and hopefully I can finish off the 2500 word one today.

On the Empyrean Gate front I have been discussing alternatives to the Class Selection Scheme that is used by so many RPG-likes. Instead of lumping the Player with the Character Creation Window at the beginning and leaving them to pick their stats, the classes should be decided through the gameplay and the choices that the player makes during the game.

Thats about all on that, and I am writing up my idea into the wiki. Catgirls are a must, you simply can't resist the feline femininity that only comes from a Catgirl [grin]

## The work never ceases

So, I was getting on with development of the Game Demo, and doing quite nicely with it, until such time as work intervened.

So everything had gone wrong. I had to rip up half the driveway and repair some pipe-age. Then the pool needed some attention. So far in the 11 months we have owned our house we have been swimming less than 10 times, and the pool has been available for less than a month, either due to cold weather, or broken equipment. So after some more fixing I am now working my ass off to clean the pool filters every few hours (when I am not at work) to clean the scunge off them.

... Hopefully this weekend I can actually use the pool, and get more on the Demo done ...

## The Wiki Wiki Wild Wild Web

Well, it appears that my current Collaboration with ArchWizard has been Outed. So I have been trading in sleep for work. I wouldn't have said that it was a Baldurs Gate/NWN clone, because I couldn't hope to put in as much technical skill as NWN has, but I certainly hope to get something similar to a Baldurs Gate game finished (well, in terms of the game, not the content).

Additionally, I announce the release of The Wiki of RPGs. This is the long awaited wikification of that tremendously outdated document I wrote, The Future of RPGs. Now with some community help it can once again be considered relevant and useful to todays game developer generation.

Feel free to email off for an account, I just wanted to make sure there wasn't going to be any more defacement of the wiki by some unnamed Tiberians ;)

## Systems Engineer

So I am now sitting here at 11pm on a work night, trying a little to get a business working, and also trying to learn whatever I can about Windows Server 2003, and more importantly Group Policies and Active Directory.

I somehow managed to land myself a fulltime job doing server builds and maintenance for Schools here through a pretty good company. What I lack at the moment is the skills they require, but I am happy to say I am learning the ropes, and I am glad they were desperate.

This is still a long way from the dreams of programming I had starting about 12 years ago, but I guess we all have to be content with what we get to do in life, and my job is pretty good now. At least I wont get put off programming from being forced to do it day-in day-out, and can then use income and free time for future pet projects.

I seem to be working 24 hours a day 8 days a week at the moment as I have the captioning contract stuff coming up in Brisbane over the next week when they need some hand-holding while they go live. This is a being a little crazygonuts with my schedule and I am just gonna have to ride it out until I have time to swim in my pool.

Did I mention that? I have recently moved from Canberra to Toowoomba (a good 13 hour drive it was) and am now living here with my wife (Philana) in our lovely 3 bedroom house and Pool. We have left the Appartment in Queanbeyan behind (currently tennanted) and moved on to bigger and better things. The only downside is the huge amount we are now indebted to the financial institutions for our mortgages, but I guess you can't just buy a house outright without that kind of commitment (or lottery winnings anyway).

Hope somebody reads this one day, someone that isn't me that is :P

## Statistics

I am sitting here at 3am wondering if I am going to get through this Statistics Assignment by the end of Monday. I may need to take the day off work in order to manage it, unless now that I have almost figured out how SPSS works that I will be able to finish the other questions a marked bit quicker than the first few.

I haven't done any work on the Baldurs Gate Clone document, except paste in a complete template for the Design Doc. I have taken to listening to the Baldurs Gate 2 game music in order to get me motivated to complete this project.

I started talking to ArchWizard today about the possibility of Dynamic music. As a concept it seems relatively straightforward to me, but the real test is whether content can be made for the system that is workable (and worthwhile) in the game.

## Stagnance

Empyrean Gate has been in a state of Stagnance of late. Not due to any lack of interest from my part, but more due to a lack of time. That should all change after Monday (in the few weeks leadup to exams) as the majority of assignments will have been completed at that stage.

I had 10 hours of sleep over Tuesday Night... because there had been too many 3 hours sleep nights in a row. Then i quickly followed that up with Last Night going to bed at 4am, for another 3 hours of sleep...

I can't wait until my uni stuff actually is related to programming, at least then I can DO the assignments in my sleep. [grin]

I will try to get onto Empyrean Gate sometime over the weekend if I can finish off those assignments quicksmart!

## SRS'n along

So I have started playing with SyncToy for synchronizing files across computers/folders (in particular to my USB key which gets utilized so much as a Ghost Boot Device that it is common for things to get totally screwed up). One little gripe I have with synctoy is that if you schedule it, I find that if I want it to run through a user account that is not logged on (ie, background uninteractive) it tends to fail out. If I schedule it to run through my logged on user account then it likes to take poll position on the screen.

Even after running it through a VBScript to run in the background hidden, or minimized it would also fail. Additionally I have been having problems running it on my old K6-2 333MHz (download machine/webserver/ftpserver) I keep getting JIT Debugger messages. Maybe its time to reinstall dotnetfx... the second :/

and now for a word from our sponsor ... Project Game Demo ...
As a minor update, I continue to write the SRS for my Game Demo. As everybody could have guessed I am doing a small Isometric style game with emphasis on the story driven engine I had been developing some time ago (wow, has it really been 3 years?)

As for SRS, I really have to say I dislike documentation writing, though it has already given me insight into what I hope to achieve that I hadn't previously thought through. Indeed Documentation does make things clearer in the form of requirements that the project must adhere to, and for each feature what outcomes are to be expected. This is a great guard against feature creep (and aren't we all a victim of that at some time or other?) [grin]

## Some Peace at Long Last!

Well, after loafing off us for over a year, my brother-in-law finally moved out. He is moving over to the US to live with his Uncle and go to Uni over there, which has finally given us back that other bedroom. Now, to turn that into an office so I can start studying/working in there ;)

I would really recommend to anybody who is planning on having family move in and live with them: get the ground rules laid down before they step a foot through the door, or else they will treat the place worse than if it were their own, and they will treat you doubly bad. Respect for anothers property just seems to go flying out the window after they start to feel like they own the place.

Another thing... Try to recommend that either they SAVE their money, or they pay board. I got sick and tired of the fact that he was working about 12 hours a day 6 days a week, then going out buying electronic gear. I wouldn't have minded so much if he had used ONLY his gear and not ours, and BROKEN our gear in the process of using it. Includes DVD/Mp3 Player w/ Microphone (for Karaoke) and CD Player/Clock Radio.

And if you think I haven't got more to bitch about... HYGENE! OMG, the place stinks! His bathroom has more scum in it than the rest of the city from what I can gather. And he doesn't flush the fecking toilet, which I notice after the odor starts to penetrate other rooms :/

Finally his dog has gone too, which I am probably a little more sad to see leave. Habibi is a fairly good guard dog, but suffers from an inability to stfu when told, and also seems to think he is the boss of us all and snaps and generally misbehaves constantly. Not to mention that he tries to eat any guests we have over, including my father-in-law. He is simply an untrained mutt, so I really wonder how he is going to cope over in the US.

I think that is enough of a rant for today, so now that it is off my chest, I can look forward to cleaning up the two bedrooms (Mother-in-laws and Brother-in-laws boxes to be removed and placed in the ceiling). A general clean of bathrooms, bedrooms, hallways, etc.. not to mention clearing the garden of all that dog mess.

Ah the joys of owning your own home...

## Skill Trees

It's amazing what you can accomplish at 2am, when you think that your brain is completely asleep you can come up with some surprisingly interesting ideas.

I will check back on what those ideas were when I wake up tomorrow morning. In the meantime, I might see if I can have some more creative ideas to put into the Skill Trees.

## SDL_mixer with Ogg Streams

Now why is it that when you want to be able to fade out one stream and fade in another, that SDL_mixer says "thanks for the new file" and cuts short the old to start up the new. I would have thought it possible to have ogg streams running on different channels, but as yet have been unable to actually stream more than one file. Instead I have to load both files as Chunks (which can cause a slight delay during loading, especially of larger files) and fade the channel that it is operating on (not particularly difficult).

There must be some implementation of SDL_mixer which allows crossfading of streams... surely...

## SDL_Mixer and WinLame saved my life...

Gotta love SDL_Mixer for ease of use and documentation.

Great place to start and Where to get the stuff

Wasn't too difficult to rebuild the sdl_mixer libraries, just a matter of adding the right include and lib directories for SDL, then for building the project remembering multi-threaded dll's settings. Yay for Google

## Remember that server I was talking about?....

Well, the Server with the mysteriously degrading array seems to be down on its knees begging me for forgiveness. It has only taken about a month and far too much overtime to sort it out.

So I just replaced the motherboard on it (Dual Xeons annoy me with their 8 screws under the heatsinks... why can't I remove the board with the CPU's/Heatsinks still attached is beyond me!)

So after all this we have replaced:
Motherboard, SCSI Card + ECC RAM, Backplane, SCSI Drives, and a SCSI cable...

Finally things are on the up and up! The SCSI Array build process was twice as fast as before, so obviously something went better (perhaps it was getting Intel Certified ECC RAM for the SRCU32 SCSI RAID controller that made the difference) [cool].

Now... to Ghost from the Temporary SATA installation back to the RAID 5.

## Releases of Tension

So I was just reading Mithrandirs latest journal entry and I was quite surprised when I started a slight introspection on my own life. I have recently become quite an angry bastard, or at least grumpy might be a better way to describe it.

I think I can put this down to a few reasons:
My parents show favoritism towards my sister, have been eager to help her out financially, talk to her constantly - while I have been left to go it alone and talk to them a couple of times a month. This doesn't bother me in itself, but leaves me feeling somewhat left out.
My mother in law decides when she wants to turn up and live at our house and I have almost no say in telling her to @#$% off (except after she has been there a month). I moved 1200km away from my friends to please my wife, and as such am stuck in a place where I get on with relatively NOBODY (for over a year now). I used to play Indoor Cricket as my relief of tension about 3-5 times a week before I moved. I have not played Indoor Cricket (or any sport) in the 14 months since I moved here I am now studying full time as well as working full time, which leaves me with - no time (or -1*time). My other outlet for frustration used to be during programming. Time contraints now pretty much eliminate that (though perhaps next semester I can do this on assignments - since I am not doing any programming related classes at the moment) Gaming is non existent. I still haven't had any time since I bought Morrowind and NeverWinter Nights however many years ago to actually play them. The Warcraft III Collectors Edition Chest is relatively unopened. Having to care for my dog takes up more time, and my wife now resents that I spend no time with her (despite the fact that she pushed me into finishing uni). Don't get me started on the little things that piss me off at work either :/ Now when I should be blowing off steam by smashing runs or bowling bodyline I tend to rant and shout. Not very good for relationships that, ranting and shouting. I feel like I am in a permanently grumpy mood. If it wasn't for the couple of beers on the weekend with the GDNet guys I wouldn't have seen any friends in over a year. ## One to go So, Friday (Tomorrow) I have my final accounting test due. It is currently 75% complete, so I should easily finish that tonight. I finished my Marketing Assignment, still under the required words. I think they actually require too many words in most of these assignments (or I am too concise) because I find myself needing a couple of hundred words to fill when I have already started waffling on. It isn't like I am missing anything from the assignment, but oh well. The Stats Assignment I only did half of. I didn't have time for any more. Basically what I handed in was everything that DIDN'T require me to use SPSS. I had already worked out that I would pass my assignment quota even should I not hand the assignment in. So hopefully I get some marks for it. On the EG front there has been some major reworking of the entire theme in order to fit with that damn Europe thing. At least the concept is sounding more humorous than serious fantasy like it was previously. I am looking forward to the concept of European Wizards Towers immensely [grin] Also, 4 Exams coming up :( ## One of those weeks... It has been one of those weeks where everytime you try to get something done, something stands in your way. I have found on my new 300GB HDD none other than Bad Sectors. Not so much of a problem as it is still under warranty, but considering that my Boot partition has gone off wandering a number of times now, NOT HAPPY JAN! So I have now ghosted my boot partition and all its contents to a 40GB HDD and am working on transferring all my data off the 300GB drive. But in the meantime I have installed Baldurs Gate II and NeverWinter Nights again. I have also pulled out my old savegames for the both of them. I have even managed to get both of them running in windowed mode on seperate monitors (however a GeForce MX440 on PCI doesn't handle running games at 1024x768 quite as well as I would like :P). The AGP card can get nice high framerates, though the PCI one gets around about 10FPS on NWN. Though that isn't so bad, because I can always play it on the other monitor if I really want to :P. I have a screenshot of having them both up and running here, but it is a monster picture, so 56k users beware. Hopefully I will get some time to have a proper look at openAL as SDL_mixer didn't have a few features I was looking for... ## Oh my... Overtime is a killer.. I have been working pretty hard over the last couple of weeks on a Server that seems to have had a spike take down every component in it. The server still runs but I am unable to create RAID arrays in any way shape or form. I am still awaiting a replacement motherboard, but this has been far more trouble than I had anticipated. I have put in a fair bit of overtime including nights, mornings and saturdays to get something resembling the server together - and KEEP it together. On the other hand I managed to get some time to myself yesterday and the day before. I managed to get some OpenAL with Ogg sample code up and running (after a fairly nasty problem with my alut.lib). So I now am looking at crossfading ogg streams now that I can mix them myself. And thank god for being able to use two different ogg streams simultaneously! Thanks for NOTHING SDL_mixer. ## Now for Code and a Rant So, what exactly is with VBScript and its useless implementation? Why can't I have integers larger than 32Bit, or more to the point, why can't they be 64bit at LEAST?! So, I know that some people are going to ask why I am using VBScript at all. VBScript happens to make a lot of sense simply for the way it can be used to interact with Active Directory on Domain Controllers, and the simplicity of making WMI calls. Plus, VBScript is so easy to start using and has a lot more immediate use than programming, and a wider feature set than Batch. So I come to start developing a script that is checking for changes in drive sizes of Dynamic Disks and possible changes to the configuration of Extents within Partitions, and I can't compare two numbers returned from WMI or the DiskExt.exe program (do a search on the net, the most USEFUL thing I found in regards to disk extents for Dynamic Disks). So I basically had to write my own string math functions (Addition and subtraction). So here is that code, available for those who want it, those who need it, and those who are interested in it. Function StringAddition(num1in,num2in) ' Cleanup num1 = Trim(num1in) num2 = Trim(num2in) if num1 = "" and num2 = "" then WScript.Quit elseif num1 = "" then StringAddition = num2 elseif num2 = "" then StringAddition = num1 end if if Asc(Mid(num1,Len(num1),1)) = 13 then num1 = Mid(num1,1,Len(num1)-1) end if if Asc(Mid(num2,Len(num2),1)) = 13 then num2 = Mid(num2,1,Len(num2)-1) end if if Asc(Mid(num1,Len(num1),1)) = 10 then num1 = Mid(num1,1,Len(num1)-1) end if if Asc(Mid(num2,Len(num2),1)) = 10 then num2 = Mid(num2,1,Len(num2)-1) end if if Asc(Mid(num1,Len(num1),1)) = 13 then num1 = Mid(num1,1,Len(num1)-1) end if if Asc(Mid(num2,Len(num2),1)) = 13 then num2 = Mid(num2,1,Len(num2)-1) end if if num1 = "" and num2 = "" then WScript.Quit elseif num1 = "" then StringAddition = num2 elseif num2 = "" then StringAddition = num1 end if 'fix an errar if Len(num2) > len(num1) then num1 = "0" & num1 end if if Len(num1) > len(num2) then num2 = "0" & num2 end if j = 1 p = Int(Right(num1,j)) q = Int(Right(num2,j)) result = p+q carry = Int(result) \ 10 result = Int(Int(result) mod 10) if Carry 0 then num1 = StringAddition(Mid(num1,1,Len(num1)-1), carry) & result end if if Len(num1) > 1 Then StringAddition = TrimLeadingZeros(StringAddition(Mid(num1,1,Len(num1)-1),Mid(num2,1,Len(num2)-1)) & result) else StringAddition = TrimLeadingZeros(carry & result) end if End Function Function StringSubtraction(num1in,num2in) ' Cleanup num1 = Trim(num1in) num2 = Trim(num2in) if num1 = "" and num2 = "" then WScript.Quit elseif num1 = "" then StringSubtraction = num2 Exit Function elseif num2 = "" then StringSubtraction = num1 Exit Function end if 'the following fixes newlines in the input if Asc(Mid(num1,Len(num1),1)) = 13 then num1 = Mid(num1,1,Len(num1)-1) end if if Asc(Mid(num2,Len(num2),1)) = 13 then num2 = Mid(num2,1,Len(num2)-1) end if if Asc(Mid(num1,Len(num1),1)) = 10 then num1 = Mid(num1,1,Len(num1)-1) end if if Asc(Mid(num2,Len(num2),1)) = 10 then num2 = Mid(num2,1,Len(num2)-1) end if if Asc(Mid(num1,Len(num1),1)) = 13 then num1 = Mid(num1,1,Len(num1)-1) end if if Asc(Mid(num2,Len(num2),1)) = 13 then num2 = Mid(num2,1,Len(num2)-1) end if if num1 = "" and num2 = "" then WScript.Quit elseif num1 = "" then StringSubtraction = num2 ExitFunction elseif num2 = "" then StringSubtraction = num1 ExitFunction end if If Mid(num1,1,1) = "-" and Mid(num2,1,1) = "-" Then StringSubtraction = StringSubtraction(Mid(num2,2,Len(num2)-1),Mid(num1,2,Len(num1)-1)) Exit Function ElseIf Mid(num1,1,1) = "-" Then StringSubtraction = "-" & StringAddition(num2,Mid(num1,2,Len(num1)-1)) Exit Function Elseif Mid(num2,1,1) = "-" Then StringSubtraction = StringAddition(Mid(num2,2,Len(num2)-1),num1) Exit Function End If wib = WhichIsBigger(num1,num2) if wib = 2 then StringSubtraction = "-" & StringSubtraction(num2,num1) Exit Function end if 'fix an errar if Len(num2) > len(num1) then num1 = "0" & num1 end if if Len(num1) > len(num2) then num2 = "0" & num2 end if j = 1 p = Int(Right(num1,j)) q = Int(Right(num2,j)) result = p-q if (result then 'and (wib 2) then carry = 1 result = result + 10 end if result = Int(Int(result) mod 10) if Carry 0 then num1 = StringSubtraction(Mid(num1,1,Len(num1)-1), Abs(carry)) & Abs(result) end if if Len(num1) > 1 Then StringSubtraction = TrimLeadingZeros(StringSubtraction(Mid(num1,1,Len(num1)-1),Mid(num2,1,Len(num2)-1)) & Abs(result)) else StringSubtraction = TrimLeadingZeros(Abs(carry) & Abs(result)) end if End Function ' Works out which integer (stored as a string) is larger ' this is used because the large numbers we are using are not capable of being stored ' in conventional VBScript Data Types Function WhichIsBigger(num1, num2) WhichIsBigger = 0 if Len(num1) > Len(num2) then WhichIsBigger = 1 elseif Len(num2) > Len(num1) then WhichIsBigger = 2 else for i = 1 to Len(num1) if (Int ( Mid (num1, i, 1) ) > Int ( Mid (num2, i, 1) ) ) then WhichIsBigger = 1 i = Len(num1)+1 elseif (Int ( Mid (num2, i, 1) ) > Int ( Mid (num1, i, 1) ) ) then WhichIsBigger = 2 i = Len(num1)+1 end if next end if End Function ## Nearly Sober... OK, I am nearly sober after the "Brisbane Game Developers Conference" which consisted of Andrew Russell, Evolutional, Boolean and myself getting together for a few beers and general discussion. By the time I had to leave things were fairly interesting and the discussion had ranged between GameDev back-end code, Stick Soldiers 3, GameDev teams, Uni, Workplace, Servers, Goatse, and the old Lounge. Having left at around 6:30pm to catch my bus out of Brisbane back to Toowoomba (after drinking since 12:30pm) I am only just starting to sober up. The challenge is simple; should Oli be at the same drinking table as me in the future I shall endeavour to drink him under the table ;) I am nearly sober, and shall go to bed now :P Nearly forgot to mention that a couple of pics are available from http://dwarfsoft.com/GameDev/BGDC/ ## Music I added in some stuff to the wiki today on the Music system I had been talking about some months back in this journal. ArchWizard has suggested using FModEx, and I am looking forward to seeing what it can do in comparison to SDL/SDL_mixer and OpenAL. Both of the latter I hated for various reasons. OpenAL is not simple enough to set up and maintain, and SDL_mixer annoyed me with its file streaming limitations. We had a bit more of a chat about Boozing and Whoring in the game. Seems like it might actually be fun to play :P ## Marketing This subject is the bane of my existence. I could handle Statistics and Accounting with no problems. There is nothing creative that has to be done with those numbers. But Marketing... Sheesh. First I have to search for heaps of information on market segments, growth etc, and consumer spending in particular areas. The only problem with this is that most of that information is owned by (you guessed it) marketing companies, and they are willing to give it to me for a meagre US$1300 (hardcopy) or US\$3900 for PDF. How kind of them...

And of course now my assingment looks great with all these (assumed) tags in it because ther is no relevant data. Surely the universities should be providing mock data in these situations if they expect students to waste their time searching for non-existent data (or unrealistically priced data)

## Maps Maps Maps Maps Maps! Wonderful Maps!

So Archie and I started talking mappage, and how the ingame will work. We are going to stay true to Isometric, and use the Baldurs Gate method of being able to 'travel' back to already visited areas.

We may introduce some of the funky 3D hacks that Diablo II did to make things not quite just 2D Isometric, but that will remain to be seen.