Ye longblog of awesome...

Posted by Astryl on Feb. 10, 2012, 1:36 a.m.

I specialize in these, no? [/heavySovietAccent]

IMPORTANT

Kinda…

I fixed all RSS categories. Now some of the people who can actually add a link to the relevant pages without screwing up the styles should kindly add them.

Feeds

Mega's Blogs

Newest blogs

Recent Activity

Latest downloads

Latest games

EDIT: One thing I should do is truncate the blog previews and use the preview parser on them. Heh. (Done)

The tooltip for each entry in the RA list now shows the creator of the blog. As Travis pointed out though, it's useless since the same info is shown in the URL.

So vote on whether to show the info as a standard under the blog-name, or whether to have a per-user preference for this

Long blog continues here. Written at about 11PM, so excuse any misinformation

I decided to not put [MEGA] in front of the name, for two reasons:

1. Aesthetics. It looks fine with three characters, but four is pushing it.

Also, seeing MEGA in all-caps looks obnoxious.

2. It gives people more chance to avoid my blog like a horrible plague.

This defeats the purpose of creating the horrible plague to begin with.

Now, more likely than not, the people reading this blog aren't interested in

all the facets of my work, so I will do my usual thing and hide everything

in sections.

Programming

Well, I'm not working on many projects at the moment, which is a good thing.

I'm really only working on Symbiote and another game engine (3D this time, for practice).

Symbiote

Well, I finished the design for the level generator (In my mind, of course. Best design platformer ever. Paper works as well in a pinch).

It's going to use an old technique I used back when I was still doing VGA programming, for creating scrolling games: Tile buffering.

We're lazy, us modern developers. Especially in GM. We create a level and we then expect GM to draw it. And it does. All of it. This, of course, leads to most CPU's doing a double-take and locking up in confusion when GM throws 2 million tiles at it. OK, not that bad, but really, I want a huge level. I want speed. I don't want to try do this with HYDRA. So I improvise.

The system works something like this: I have a 320x240 screen, filled with 16x16 tiles. That's a total of 300 tiles (Not too many). It's easy to quickly store, retrieve and modify 300 tiles, correct? In fact, it's easy to do the same for normal objects. Add to this the safe-zone border of 2 tiles and you've got a total of 374 tiles being drawn at a time.

Not too bad.

Then I have my 1024x1024 tile map. Game Maker hates this, and so would C++ if you mimicked GM's behavior.

(That's over a million locations to process per cycle).

When tile-buffering, you load only the tiles that touch the visible view. It's not difficult to work out an offset into an array based on an X/Y coordinate set (floor(Y/16)-2 * 1024 + floor(X/16)-2 for my situation), though I'm using ds_grid for this (Doesn't have that limit on elements).

Anyway, point is, I can quickly render tiles from a major set. But how the heck do I generate them without clogging the system up? Very simple. I carefully restrict my loops and use a state system to distribute the processing over several frames instead of blocking the game (And therefore CPU) by using one massive for() loop.

Something like this:

// Step event
if(bBuildingMap < 11) // 11 passes
{
   if(iY < 1024)
   {
    	// Process whole 1024 chunks at a time, which is quick. 1024*1024 is NOT
	for(iX = 0; iX < 1024; iX += 1)
	{
	    switch(bBuildingMap) {
	        case 0: // Perform basic generation
                case 1: // Create starting area
                case 2: // Create small random holes
                case 3: // Create tunnels between holes
		case 4: // Erode terrain around empty space
	        case 5: // Repeat 4
	        case 6: // Place vegetation and decorations
		case 7: // Place player and mother-cell
		case 8: // Place items. Better items are farther away from the mother cell
		case 9: // Place enemies. Stronger enemies are placed farther away from the mother cell
		case 10: // Snap enemies and items to ground
	    }
	}   	
	iY += 1;
   }
   else
   {
        bBuildingMap += 1;
   }
}

From what I've determined, this will create an interesting level. And allow for a progress bar. :3

My new engine

Codenamed the Tremor Engine. It's my playground for all things 3D now. First step is to get the window subsystem

working, then I can start working on my biggest fear: The model loader/animator.

I'm going to start off with MD2 support, and then add in support for MD3, 3DS and perhaps FBX.

At least I have some experience with MD2s. My old roguelike game used them.

The engine, of course, isn't really an engine. I'm designing it with only one game in mind, and the

game itself is called Tremor. No, it's nothing to do with earthquakes. It's the codename of the

protagonist.

The game itself, according to my ever lengthening design-doc, is basically a Bionic-Commando meets Splinter Cell

meets Generic Ninja Game. OK, it's not that cut-and-dried… It's also side-scrolling; the 3D is just for visuals.

This one I'm hoping to sell one day. But I mustn't get ahead of myself. I'll post screenshots/concept art as soon

as I have anything worth seeing.

Site Programming

Sticking this into it's own section, because there is a marked difference between development on a local machine

with the intention to create applications and creating programs for a website such as this.

I love the code on this site. It's a beautiful mass of organized chaos. <3

And I'm dead serious about that.

Today, I finish the RSS feed page, and I'll work hard at making it failproof. Then, once it's been tested into

the ground, we can perhaps add a link to it from the relevant pages.

One of the problems with the feed page was that it had no limit on the data output. RSS coupled with strict XML

makes for a very touchy union with PHP. No, seriously. Some RSS readers won't accept XML docs larger than

150KB for various reasons. Others won't accept any formatting (<b><em><i><etc>) of any kind. And how do they deal

with it? In the most mature way possible, mimicked by thousands of young adults across the world: They do nothing.

They'll stop reading the data. Miserable.

Another problem, as mentioned before, was the Content-Type. Some feed readers will accept a 'text/xml' doc, but most

look for 'application/rss+xml'.

And then, finally, were the problems with the mySQL queries. Without going on about it too much, the SELECT query was trying to sort by a column called 'date'. Trouble is, it doesn't exist in the tables involved. It's called something else.

Now, as I'm going, I'm downloading the various pages to my USB drive. Why? For nefarious reasons unbeknownst to the members of this site: Design. I'm looking at the systems involved, and figuring out a way to make it all neater (on my local testbed, of course). Why? No reason at all… (V4 if you really have to know)[/size=2]

Music

Besides tracking, which I do a lot of, and listening, I'm also learning the guitar again. I started over a year ago,

but my inherent and odd fear of the first string kept me from practice. Or: I was just too lazy to practice.

I'm more interested now though, especially since I found that it's good for composing new tunes.

My fingers are in a constant state of rebellion though… steel strings hurt at first.

So far I've 'mastered' the Chromatic Scale, Alternate Picking, and the basic chords (E Eb G C A D).

Hope I get somewhere this time 'round.

Art

I've been getting horribly out of practice, but was pleased enough with the results of my latest artwork (The Mother Cell). Just need more subject material. Moar giant mechs?

Also, my avatar was made for a reason. Not because I love hitting the caps lock key (It's annoyingly in the way most of the time), but because I could no longer have poor old Derpy as my avatar.

Because I use my parents PC for internet access because I can't afford my own yet, I have to abide by the rules. And one of the newest ones is: NO MLP.

Discussion went along the lines of "It's evil blah blah magic blah blah little girls blah blah hippie blah blah we ban you forever if you don't listen etc".

I just yielded. I value my internet connection, and thus my connection to this site more than I enjoy watching the show.

I'm not obsessed with the show… am I? T_T

Though I'm still checking in on the Dan vs. FIM page… Gotta see how that turns out… =P. Turning images off while searching for videos/images makes things easier too.

Gaming

Well, I've mostly been playing Minecraft and C&C: Red Alert 3 lately. RA3 is fun. And hilarious at some points.

Quote:

Russian Premier: "I'm escaping! To the one place you Allies and your capitilism cannot reach! *pause for dramatic effect* Space!"

And Doomsday Rushmore heads with Laser Eyes. No, I'm serious.

I've actually been switching frequently between Minecraft and Terraria. Minecraft caught my interest again for a while after I installed a few interesting mods, one of the most interesting ones being ComputerCraft.

What is ComputerCraft? It's a fully functional computer terminal. With a craftable Disk Drive, Floppy Disks, the LUA programming language and the ability to control redstone current (And to network over a RedPower Bundled Cable).

And this, I decree, is awesome.

I told you it was long blog, da?[/heavySovietAccent]

Comments

JID 12 years, 7 months ago

Quote:
I decided to not put [MEGA] in front of the name
Thank you for doing that, I usually don't get annoyed by small things but, I hate it when people do that too much with their blog title.

sirxemic 12 years, 7 months ago

At long last the RSS feeds are fixed again. I made them originally, and at some moment it broke / someone broke it. Good job. Now you should think of a place for each category to put the link. :3

Edited this comment 4 times because I read the "site programming" part AFTER commenting >_>

Also

Quote:
Others won't accept any formatting (<b><em><i><etc>) of any kind. And how do they deal

with it? In the most mature way possible, mimicked by thousands of young adults across the world: They do nothing.

They'll stop reading the data. Miserable.
You should realize that the RSS specification states that the description should be plain text IIRC EDIT: just discovered I'm right. So it's not miserable at all :D So yeah, you should either use CDATA or escape < and >.

death 12 years, 7 months ago

that is a long blog lol. only read the small sections xD

nice work on fixing the site. though i'm not really sure who uses RSS anyway.

Astryl 12 years, 7 months ago

Quote:
You should realize that the RSS specification states that the description should be plain text IIRC EDIT: just discovered I'm right. So it's not miserable at all :D So yeah, you should either use CDATA or escape < and >.
I know. I guess I could get around to finding relevant places to stick the RSS links now… Hmm…