Journals

Penguinboy15 years ago2009-02-26 03:12:19 UTC 19 comments
My big project is still coming together (albeit slowly). I've done a ton of work over the holidays (start uni again on Monday) - about 20,000 lines of code. I deleted half of it the other day, though, because most of it ended up being written 3 times before I was happy with it >_>

I've decided that I will announce the project when either:
1) I get to 30,000 lines of code
2) I finish 11 parts of the program that I've chosen out.

Once one of these things happen, I'll start making the website (hopefully Ant will be doing the design), and announce it once the site is ready.

For reference, the program currently has 21,000 lines of code, and of the 11 parts, they have the following completion percentages:
30 / 70 / 50 / 10 / and 0 for the other 6. Which is about 15% total, but it should increase pretty fast. For example, that 15% was almost entirely done in about 2 weeks.

I realise that this is pretty boring information, but there's a little bit of insider info on what I'm doing.

As always, people who already know about the project, and haven't seen any updates for a while, you might want to catch me on IRC and I'll show you some new stuff.

Now excuse me while I go achievement whoring. BONK!
Penguinboy15 years ago2009-01-19 10:36:18 UTC 2 comments
Decided to take a break from my big project (which is currently a lot of fiddly maths stuff) to work on something a bit lighter.

I wrote an FGD parser a while back, and thought that an editor might be useful for it, because it can get confusing at times.

For those who don't know, an FGD is the file that tells Hammer which entities it can use in maps. Different mods have different entities, hence the reason there are many FGDs - Half-Life, Counter-Strike, Team Fortress 2, etc.

I don't know how useful this would be to the people of TWHL, as you'd only need to edit an FGD if you have a mod with custom code. But here's some screens anyway.
User posted image
You can change the classes that a class is based on (it inherits the properties, etc of the base classes), and add some editor-specific behaviours, too (e.g. what colour the entity will be in the 3D view).
There's also the description of the entity, which is shown when you hit "Help" in the entity editor window in Hammer.
User posted image
You are shown a preview of the class as it will appear in the final FGD file. Ignore this if you don't understand the FGD format.

That's all I've finished at the moment. The Properties tab is half done, and it'll probably be all finished in one or two days.

Not very exciting, I know, but that's what I'm working on at the moment. It'll get released at the same time as my big project, unless there's popular demand for this type of thing before then.
Penguinboy15 years ago2009-01-11 09:00:49 UTC 11 comments
I was bored the other day, so I wrote a short story. Enjoy.
The Rise and Fall of Floating Point
A badly-written short story, by Penguinboy
(Warning: this is a work of fiction. Like most fiction, it has a bit of fact within it, but none of the information here is accurate. This story doesn't represent the author's views.)

Chapter 1: Ancient History

When computers were first introduced, all numbers represented within a program were in binary form. The programmers did amazing things with the binary numbers, and the people rejoiced. One day, a bloke by the name of Bob thought, "But I don't count in binary, I count in decimal!". Bob asked the other programmers why they used binary instead of decimal, and the programmers laughed at Bob and called him names (like Snob, Gob, Drongo, etc). Bob wouldn't have any of that, so he shot the mean programmers.

The next day Bob used the power of Morse code to transform all programming languages to use decimal instead of binary formatting. He showed this to a programmer (as there were new ones to replace the others), and the programmer was so shocked to see a '2' in Bob's code, he fainted. Once he recovered, the programmer praised Bob for being such an evolutionary guy, and the people rejoiced. The world flourished under Bob's rule, and programming with regular decimal integers allowed everyone to write their own code.

Many years later, a sheila by the name of Jess was happily programming on her electric keyboard, when suddenly, she saw a problem with the current method of programming with whole integers. She gained an audience with King Bob, and told him her problem.
"I want to use a decimal point in my numbers", Jess told Bob.
Bob thought this was a ridiculous idea. "I think that is a ridiculous idea", he said to Jess, and had her beheaded.

But it was too late. A lone programmer, called Fred, heard Jess's idea, and thought it was not a ridiculous idea at all. He started a cult, which he called "The Jess Initiative" (TJI). He kept TJI a secret from Bob, and started implementing a programming language in secret, because it used illegal binary numbers. Fred had a very good idea of how to use decimal points in his code, which he called "Floating Point". Once he had finished his program, he rejoiced (quietly, and in secret).

Fred approached the King and challenged him to a programming battle, as was the custom. Bob scoffed at Fred, for he was very short, but he accepted the challenge anyway. Once the battle started, it was obvious that Bob had no chance of winning. Fred's program was much more accurate than Bob's, because it had the advantage of decimal precision, where Bob's did not. Bob was killed in the battle, and Fred was crowned the new king. He told the people about floating points, and they rejoiced.

Chapter 2: The Story of John and Gabe

Many years later, A programmer named John Carmack appeared out of nowhere. He astonished all the other programmers with his skill, and quickly became renowned as the best programmer in the land. He gained many followers, and together they named themselves "id". The id group did what nobody else has done before, and made a 3D engine. Early in the development process, the following conversation took place:

"We need a file format to represent a map." Said John to id programmer #1, who we shall call id1.
id1 replied, "Well, our engine only supports maps that are an intersection of planes, so we should represent maps like that."
"Good idea," John said. "Can you make it so that our level editor can edit the map directly, without us having to do any sort of compile process?"
"That'll take me at least a day to implement." Noted id1. "Let's just leave the compile process in there. Nobody will notice the difference."
John thought about it. "You're right. People enjoy compiling, anyway."

The event recorded above is known as "id's First Great Mistake". Many would come to regret the decision, including John himself. But, for now, he and the rest of id rejoiced. The file format was introduced, and was christened with the name "MAP", as id believed their format to be the only format for maps the world would ever need.

As the format was implemented, a few problems quickly arose. The floating point system was producing small, but very important, rounding errors. No program had ever needed to be that accurate before, so the problem had been previously undetected. Carmack knew the consequences of questioning the authority of the floating point system (or face the wrath of Fred), so he quickly eliminated the programmer that found the error, and he covered it up with some basic rounding functions.

id released their 3D engine in the form of a game, and it was called Quake. Quake impressed a lot of people, including one known as Gabe Newell. Gabe approached a programmer friend of his, Mike, and they eloped and formed their own studio, which they called Valve (the name derived from Quake developers' strange fear of the word "Leak", and you can tighten a valve to stop leaking pipes, or something like that). Valve employed the use of the Quake engine to make a game called Half-Life. Half-Life was a very good game, and the people rejoiced.

Gabe decided to make a sequel to Half-Life. He told his Valve friends so, and they all agreed that they should make their own 3D engine, to prove how awesome they were. During development, they discovered that the MAP format was not suitable for their needs:

"We need to make our own format." said Valve programmer #1 (vp1).
"Okay", said Gabe, "Can you make it use the same plane-intersection technique as MAP, though? That way our programmers would already be familiar with the system."
"That makes sense." Replied vp1. "I shall get on it immediately. I could set aside a day to get rid of the compiling process, too, if you want."
"Are you kidding?" asked Gabe. "Level designers love compiling!"
"Wow, what was I thinking? Of course, you're right." said vp1. "You're incredibly smart."
"I know." said Gabe. "Now let's go and frolic in the daffodil fields."
"Do let's." replied vp1.
And go they did.

So Valve continued to use the plane-intersection representation of world geometry in their new format (VMF), and some code from the quake engine was copied over to accommodate for that. Little did they know that the magic floating point rounding algorithm was contained within. Valve later released Half-Life 2 in their new engine called "Source". It was named so because they were unable to copyright "Sauce", because the name was too generic. The reason they wanted "Sauce" is unknown.

Years passed, and John decided to release the Quake source code to the world, for it was no longer of any use to him. The floating point problem was quickly found (which John had forgotten about), and John was sentenced to death by big-rock-dropped-on-head (later known as Crushing) by King Fred. But before he could be executed, a rebellion took place (for the people loved John), and King Fred was overthrown. John refused the people's offer to become the new leader, instead leaving to work on Doom 3 (aka "id's Second Great Mistake"). Fred was eventually replaced by a man called Obama, who relaxed restrictions on programming, so people could code without fear.

Chapter 3: The Fall

Many more years later, a young programmer was doing some research into the story told above. He saw the MAP and VMF formats, and their similarities and differences. He investigated the intersection of planes algorithm, and experienced the same floating point rounding issues that many others before him had encountered. By this time, a programming language had been invented with a "decimal" format.

The decimal format was not a native format, and was therefore slower than floating point. But, it had the advantage of being much more accurate than floating point, having no rounding errors. The young programmer noted this, and used the power of email to eliminate floating point from all the world's programming languages. But the power of email is not as influential as the power of Morse code, so the attempt failed. The young programmer had to make do with modifying his program to use decimals instead of floating points. The program worked much better, and the rounding errors disappeared. The young programmer rejoiced.

Remember the failure of the young programmer. Floating points are fast, easy to manipulate, and native to many CPU's. They cannot be destroyed. Even now, floating points are kidnapping children in their sleep, running over cats for the fun of it, and cutting in line at theme parks. They should be avoided at all costs! If you see a floating point on the street, run away as fast as you can.

You have been warned.
Penguinboy15 years ago2009-01-03 10:42:41 UTC 20 comments
Wow. I've been going through some of my old forum posts and realised what a jerk I was back then. Admittedly, I'm still a jerk sometimes, but I like to think that I'm better than I was. I will continue to strive to remove all jerkiness, but you might have to be patient. :)

I've only really gotten better over the past year, so, for the times I was a jerk to you, the reader, I apologise. Please forgive me for being a twat.

In other news, I have a big programming project that has been in the works for about 6 months now. Some people (who join IRC every now and then) know of it, and I hope that it will be useful to everyone. I might announce it this month or next month, depending on how well I go. Please, if you do know what it is, don't spoil the surprise for everyone else! (Also, to those people who already know, if you catch me on IRC, there's some updates you might enjoy seeing)

Also, I've always wanted to use "pants" as an insult.

People who abuse exploits in Left 4 Dead are pants.

Did I do it right, British people? It's a British term, isn't it? I'm so confused right now.
Penguinboy15 years ago2008-12-09 00:40:49 UTC 7 comments
Something arrived in the mail for me this morning...
User posted image
Fresh from EBay, this (new) copy of Psychonauts is all mine! This is rather special, because of several reasons:
  • Psychonauts is one of the greatest games of all time
  • The retail PC version was never available for sale in Australia (notice the ESRB label instead of the Australian OFLC), so this is would have to be imported
It ran me back $30 (including postage), which is a great deal (remember, in Australia, new games are $100). It's available from Steam for US$20, which is AU$30, so I got a physical copy for the same price, and some boxart and a manual to boot! I've started replaying through it and it's even better than I remember!

So, in light of this wonderful occasion, here's some homework for you:
1. Buy (yes, BUY) Psychonauts for US$20 on Steam, or get a retail copy if you can/want to.
2. Play it and enjoy!

If you're unsure, you can try the demo, and then buy it once you've played it. If you already have a copy, play it again! Finally, if you have a pirated copy and enjoyed it, buy it! You won't regret it!
Penguinboy15 years ago2008-09-07 05:59:04 UTC 7 comments
On very rare occasions, you find something so perfect on the internet that you can sit there, staring at it for hours, and wonder how the fuck something filled with so much fail (see: youtube, 4chan, SA, etc) can produce something so awesome.

I experienced this yesterday, researching something for my new programming project. This article on parsing .MAP files and creating faces suitable for 3D display is the most awesome thing I have seen all year.

I have no idea how much time this has saved me, but I put it in the ballpark of: fucking ages. I've mirrored it on my kkore space for presevation; the original host is dead, and I was lucky to find it with google.
Penguinboy15 years ago2008-08-06 08:30:00 UTC 6 comments
Initialising "I saw The Dark Knight" journal combo.

I saw The Dark Knight.
Penguinboy15 years ago2008-04-22 06:43:28 UTC 10 comments
Wiki Checklist
-Display
-Categories
-Subcategories
-Entries
-Add New Entry
-Comments
-Editing
-History
-Comparing
-Reverting
-Changelog
-Compare to Last
-Regular BBcode
-New BBcode
-Moderator Wiki Panel
-Insert Entities into Wiki
-Insert Glossary into Wiki
-Convert Error Guide and Insert into Wiki
-Wiki-Specific User Permissions

16/19
85% Complete
Penguinboy16 years ago2008-04-10 06:33:46 UTC 2 comments
TWHL3 Development Diary Thingie #5

The subject this time is the Wiki. I've discussed the functionality of the Wiki in Diary #2, but basically it'll be similar to the current entity guide and glossary, except editable. You'll be able to add links and lists and possibly tables, and so on.

The reason I'm not making it like a full Wiki (every page editable) is because it isn't needed. You can only edit the content pages for each entity, error or definition. You'll be able to add new entries, but only admins can add whole new categories.

The job of a Wiki moderator is to look over changes and approve or revert them. Users who spam and/or make stupid changes will eventually have their editing privileges removed, and possibly a ban from the site. Each entry will also have its own comments, which are only reserved for helpful additions to the entry. Comments will be screened before being added.

An example of a useful comment is a specific case for the use of say, an entity - "This entity can be used for Specific Case x, set parameter y to setting z, etc etc etc", or maybe a different solution than stated to a compile error - "This error can sometimes be fixed by using function x on entity y etc", and so on.

Some examples of useless comments:
In error guide: "hlp i got ths error an i duno wut 2 do plz help"
In entity guide: "how do i use this to do blah blah"
In Glossary: "o i get it now thx"
etc etc. I think you get the point.

Too many of these useless comments will mean you will have your editing privileges removed (includes commenting privileges). Users who contribute lots of helpful information in the wiki (tutorials too!) will be rewarded.

Anyway, that concludes this diary for today. Next time will be about user control and the strike system that is being implemented.
Penguinboy16 years ago2008-04-06 03:28:41 UTC 6 comments
TWHL3 Development Diary Thingie #4

Well I thought that I should just keep along with doing these, as I am always doing stuff with TWHL (whether in the background or obvious). Since launch, a massive amount of bugs have been razed, new additions have been raised, and changes have been....made.

Whether my slightly incorrect grammar and terrible wordplay affects site development or not is yet to be known:- but, it is known that Uni is affecting it like nobody's business. I have hardly any time to get any sort of coding at all done.

That said, I am still getting some things done, such as the AJAX shoutbox, which was a completely random "out of nowhere" kinda thing, but now enables admins and moderators to edit and delete shoutbox posts without having to load up the shoutbox "Live" (which is even less "live" than the current shoutbox), which will be updated given the time of Ant's designing skills and my coding skills. The new shoutbox live will look similar to the one you see on the left, except with avatars. It will refresh every ten seconds.

Admins will get their moderator privileges back as soon as I finish coding the admin panel (maybe before), and they will be able to see the currently limited admin tools for themselves. That said, the prospects are looking good for admins and moderators, and the site is already much easier to use.

The addition of comments to journals seems like it is going well. The point of journals is to want other people to read them, and comments allow discussion and feedback. On the other hand, news comments seem to be nothing but spam, since news announcements are meant to tell you something and not expect a reply. They will remain though; maybe we can start posting some half-life related news in there and start getting some constructive discussion happening. In all seriousness though, anyone spamming "first post" comments anywhere on the entire site will be temporarily banned. You may have noticed that this happened to skals.

The wiki system is getting off to a slow start, but is still happening. I've decided to use a different system to the tutorials, and approach it more as MediaWiki does, where changes are made, and then approved afterwards. Some may have noticed that the Source entity guides are available to use, but they are currently a bit dodgy. This is simply because of my method of inserting all the information in, and I expect every entry to change drastically, with a lot more information, useful comments, and the like, on the introduction of the wiki system. (Some may have seen my SDE module, you can try it out right here; This is ripped from MediaWiki and modified, instead of the old PEAR module i was using before. It will be used in the wiki system.)

The tutorial system has has a bit of a workout, but now it's dying down a bit. A request to all members of the site: Propose a tutorial! We need Source tutorials, not so much Half-Life 1. Team Fortress 2 and Portal in particular need tutorials. To everyone with a draft tutorial: get writing!

Okay, I'm getting a bit sick of typing so I'll stop now. More stuff later.
Penguinboy16 years ago2008-03-06 04:41:16 UTC 15 comments
Journals now support comments!
Penguinboy16 years ago2008-02-09 21:04:28 UTC 0 comments
TWHL3 Development Diary Thingie #3

Here I am again with another edition of the TWHL3 development diary! This time I will have a quick chat about the graphical updates to the site, and because that won't take very long, I'll talk about what to expect when it's time to update.

Changes to the HTML code has already been talked about in #1 - The table layout has been scrapped for the new-age CSS layout, and the site is generally less ugly. Strider is making up some new graphics like a brand new logo, download buttons, etc etc. Eventually he will remake the smilies so that they fit in better.

Ummm, yeah. Design isn't really my forte, so this is what will happen when the time comes to upgrade:

1. TWHL will be closed off to all users.
2. TWHL is upgraded to TWHL3 and admins will start testing it.
3. The site will be reopened once the upgrade is complete.

The entire process will take quite a while and could be anywhere between 1 to 3 days. The page that you will redirect to will tell you any major updates, an expected re-opening date, and a link to IRC so you can get up-to-the-minute updates.

Pretty much nothing has been done on TWHL3 since the last journal, I'm taking a little break. It's at 95.4%.
Penguinboy16 years ago2008-02-05 18:43:02 UTC 1 comment
TWHL3 Development Diary Thingie #2

Hello again, and welcome to the second instalment of the TWHL3 development diary! This time, I will be discussing future upgrades to TWHL after the release of TWHL3, but first, a small correction to last post:

I said that PM's are now like mini-forums, but I had to change it back. The practicality of it died. Who deletes the thread? If it's deleted, that forces every user to lose it. What if they want to keep it, reply, archive it? It messes with the system, so I scratched it. PM's are the same as they are now.

Now, on to future upgrades:

The first major upgrade is, as I've already discussed, a wiki system for entity guides and the glossary. The wiki system works like this:

The user must be logged in to edit. Once an edit is made, the entry is then locked off to any further edits until a moderator approves it/rejects it. I'll give wiki users a little "approval rating" that is a ratio of approvals to rejections. users with a low approval rate may have to plead their case to not have their wiki edit privileges removed.

History of all edits to the wiki are retained and can be reverted by an admin or moderator at any time. Moderators are alerted to any edits that need checking, so edits will be processed quickly. There may be new positions available for wiki moderators if need be.

Using the same wiki system, an error guide will be added. Most of the information will have been......borrowed from other sources such as tommy14. There is also a HL2/CS:S/DOD:S entity guide in the works.

Moving on to the next upgrade, which is something new and exciting. Projects! A project is a mod, a program, a map if you want, a drawing, anything you want! But, projects are generally limited to mods and programs such as my Twister or muzz's Compilator.

Each Project gets its own private forum for team members, their own news reel, and maybe even their own shoutbox (replaces current one), or a public forum. But I want to keep public forums out if I possibly can. Projects will get limited (if any) storage space to upload screenshots (probably will just link to imageshack).

There will be a 'Project quick news' news update on the right of the main page, and a bigger version on the main project page. This is much like the news feed thingie on sites such as Facebook ("Twister has uploaded 3 screenshots","Half-Life: Hostage Situation has posted 1 news update","6D has provided 2 new downloads", etc).

For the moment I can't get very detailed with Projects for the moment as no planning has gone into it yet.

The next new thing to hit TWHL will be reviews. A user can review a map, mod, film, game, book, anything. They write their review, give it a rating out of 10(? 100?), and then they can list pros and cons, and a (possibly humorous) "better than" and "worse than" scenario. Reviews will also be included in an update module ("Penguinboy has reviewed Far Cry","Ant has reviewed Batman Begins",etc) and so on.

Both Projects and Reviews will be included in the user profile.

Well, those are a few things that are planned for TWHL in the future. If you have any other suggestions (not a texture vault, please) don't hesitate to PM me with your suggestions. Just to note: the order of release for these is: Source Entity Guide, Wiki, Error Guide, Projects, Reviews.

Oh, and I almost forgot, TWHL3 passed 95% yesterday, and is currently sitting at 95.1%. PM's are complete. Next time, since I'm running out of things to talk about, I will run though the upgrades to design and graphics.
Penguinboy16 years ago2008-02-04 06:19:51 UTC 0 comments
TWHL3 Development Diary Thingie #1

Well hey there! It's been a while since I've personally indicated any form of TWHL3 progress, so I thought that in the weeks until release I'll do a little development diary updated every few days.

TWHL3 is currently going very well, and right now it is 92.9% complete. Note that this percentage only includes the "modules", if you will, of TWHL3 that include database entries, so there are bits and pieces that still have to be done that aren't included in that total.

Most of the "big" modules are done - forums, vault, shoutbox, entity guide, glossary, news, users, journals - and the only priorities are PM's, Competitions, and Tutorials. For all three, most of the visual parts are complete, its just the background bits that need coding - the tutorial edit system, competition judging and creating, sending PM, etc.

TWHL includes a select number of improvements on the user end (the meat of the upgrades are in the admin system), but regular users get a thread tracking system, "alerts" that admins can send out to users, MOTM (not coded yet at all) much more integrated than it is now (think voting from the map in the vault), and small upgrades to existing operations as well.

It is important to realise that TWHL3 contains absolutely nothing from atom's (modified by seventh) current TWHL code. The functionality is similar, but the code is much more efficient and easier to upgrade. The current layout (all with tables) has been scrapped for a nice CSS approach that I'm told is Web 2.0 and all that (table layouts are so 1998).

Forums have been modified just a tiny bit: old threads cannot be bumped, but a user can easily request to have it bumped by an admin if the post is considered worthy of the bump. Also, a thread can be bumped by an edit of the last post.

The vault is much the same, but it has a nice advanced filter option as well as support for RAR files to be uploaded. The 2mb limit remains.

Entity guide and Glossary are nearly exactly the same, but soon after release I'm going to be implementing a wiki system for them, and for a new error guide as well. Source entities are in the works and will be added around the same time.

Tutorials are almost a wiki system, with the exception that only the tutorial author can edit it. All edits will be referred to a moderator before going live. The proposal system is much better too, and it pretty much guarantees a response from the mod team quickly. You can also write and save your draft on the site, and using special bbcode for the tutorials.

PM's are now like mini-forums, and a conversation can be held with only one PM "thread", so to speak, going to your inbox. Some users, as rewards, or prizes, will be allowed a custom title under their name for the forums.

There are lots of small things I've added, but the way I've written the code is a bit "all over the place", so on release expect a few inevitable bugs. When this time comes don't hesitate to use the PM system, the "contact us" system, or anything to make sure we get onto it quickly.

Well now that you have a reasonable idea of what to expect at the launch of TWHL3, PM me if you have any suggestions that you think should be added to TWHL3 before it goes live. Just small suggestions, because I'm struggling with the Tutorial system at the moment, and it's very fiddly work (checks and double checks all over the place, editing, constant database work, etc.)

As a final note, I apologise to everyone who wants to take a look at the Beta Site and found themselves staring at The Governator's ridiculous tie. Ant requested the site be completely blocked off after TWHL3 reached 90%, so you're all surprised or something (even though you've probably seen it before).

Next time I will indulge your minds with my plans for future additions to TWHL after TWHL3 has been released. This is where it gets really exciting people, so tune in next time!
Penguinboy16 years ago2007-12-01 07:39:39 UTC 0 comments
It's my 18th birthday today!

Time for drunk IRC - ;>
What he said. Have a good one. ^^ - Daub
Yay birthday! - Ant