Jemgine

6Sep/100

Horribly broken.

How come, when I upload a horribly broken change set, people leave messages for me on unrelated blogs instead of just submitting an issue through codeplex? Anyway, I seem to have fixed it.

Now check this out.

Filed under: Daily Update No Comments
5Sep/100

Texture Cache

The Jemgine Map Editor can now cache built textures. This greatly reduces the time it takes to open a map, since textures don't need to be built every single time. It's experimental still, so it has to be explicitly turned on in the config. The time it took to open a map with lots of textures went from 'annoyingly long' to 'annoyingly long the first time, then, instantaneous'. Damn fine show.

Filed under: Daily Update No Comments
4Sep/100

This blog is my portfolio.

It is. That's why (most of) my projects are over there in the sidebar. I just added some more. Jemgine and Jemgine.Hex just link through to their codeplex pages, though. The two articles I've written in the last year are also over there now.

Oh, and that Color Picker turned out to be real easy to separate (though it's still XNA, so it's still dependent on that) so it's available as source by itself now! Sure, it was already available as part of Jemgine - but now it's also available by itself! Neat!

Now, how do I make people aware of it without being accused of 'advertising'?

Filed under: Daily Update No Comments
3Sep/100

Color Picker

Today I wrote a color picker. It uses the fairly common hue wheel with interior shade triangle style. I could yank it out of my stuff so it stands on it's own, except it would still require XNA. The actual ring and triangle are drawn by a pixel shader. Shame that so much of the code is duplicated between the control and the shader, though.

Yeah, so, I've sort of been updating every day for the last couple days. I'm bouncing back and forth between two projects, working on them every other day. So I'll likely be posting much more frequently for a while.

Filed under: Daily Update No Comments
2Sep/100

XNA 4.0 and Winforms

The sample on the creator's club website almost compiles with XNA 4.0. All that's broken is the Graphics Device's presentation parameters, and these are pretty simple to fix. So it was a pretty simple port. Took about three minutes to get it to compile, and another ten or so to make it work. Turns out there's another breaking change lurking in, of all places, viewports. The max and min depth are now constrained to the range 1,0.

Here's a simple model for simple level editors. Especially if you're working on some kind of grid, say of tiles. All operations are abstracted as 'brushes'. The brush interface has a single apply function, which takes the position to apply it, and the level to apply it to. Add a toolbar to select the brush, and a property grid to set brush properties (Actually sort of overkill, but oh so simple to implement) and you instantly have an awesome level editor. Enjoy.

Filed under: Daily Update No Comments
1Sep/101

Feathered Splats (2)

Before I just threw a screenshot on here without any explanation. First I start with the individual splats. Please excuse the horrible graphics, I painted them in a hurry just to test the method out.

So there's two splats. Notice that the edges are transparent. In the Jemgine map editor, I can create these splats, and scale them, and rotate them, and even tint them. By lining up the transparent edges, they blend together into a solid mass.

For a great example of what this can do, given a good artist, go play Braid.

I also have this article over at Sgt Conker on the scripting system used by Jemgine. I'll be copying it over to here at some point soon, too.

Filed under: Daily Update 1 Comment
29Aug/100

Feathered Splats

This is basically how Braid's levels are put together. For ten minutes of scribbling, it sure looks good.

Rocks

Filed under: Daily Update No Comments
28Aug/100

Node Scripting in the Jemgine map editor

This is what I've been up to for the last few days. I was trying to write this article about a node-based scripting system, and I needed screenshots of my node-based scripting system, and I realized that mine was ugly. Not only ugly, but obtuse. I thought all I needed was to position the labels better. But that's a hard problem. I didn't bother to solve it, I just made it go away.

This is where I started.
Start

The labels are big and obtrusive. The nodes themselves are lost in the clutter. The terminals move to face whatever they are connected to which, when I first implemented it, I thought was a great idea.

So the first thing I did was reposition the terminals. Labels still behave the same way, I just turned them off.
Start

And then I made the terminal connections into splines. The script itself hasn't changed at all in this process, though I'm moving things around. At this point, you can tell how things are connected, but you still don't have a clue what's going on.
Start

So I put the labels inside the nodes. I also spread the nodes out more for this shot. The gold nodes are multi-selected.
Start

Finally, I anti-aliased the lines (using a dirt cheap trick : it doesn't draw a line; it draws a textured triangle strip. The texture has an alpha-blended edge.) and color coded them based on their origin. That purplish node is selected - and a selected node shows labels hanging off it's terminals. I also laid the script out in a neater way. I've still got to fit the nodes to their names properly.
Start

I still need to work the icon into it somehow, maybe so node names can be turned off. Or because the names get kind of small when you zoom out. And the nodes should be big enough to contain their label. But, there it is. Much more usable now, don't you think?

Filed under: Daily Update No Comments
22Aug/100

Ludum Dare

So a Ludum Dare just ended. For some, Ludum Dare is a great time to bash out some crappy game. Some of us, though, through participating in several, have found that we really aren't cut out for that sort of thing. So instead, we use it as an excuse to get something else done. During this LD, I did two things.

First, I made this awesome hexagonal grid subdivision library. It's on Codeplex. Right here. It does some interesting things. Specifically, this awesome hexagonal grid subdivision library subdivides hexagonal grids.

I also built these book shelves. They are paper-back sized and fit nicely under my chalkboard! That's every star wars novel post A New Hope published as of 2005 on that shelf. And then some crap by Card, Niven, and some classic scifi. Does that make me a loser? Probably!

Filed under: Daily Update No Comments
11Aug/100

Antioch Updates

Spam bots are getting past the captcha. Stop that.

I don't think I posted this one here.

I've got conversations working in the game now. So who knows, maybe soon I can actually build something to PLAY. Maybe not so soon, since I am currently distracted. As always, the project is hosted on CodePlex. You know. Over there. On Codeplex.

And something unrelated. This came together quick because I used Antioch as a base, but it's not running on Jemgine.

Hint : I'm not controlling any of the little ships on the left.

Filed under: Daily Update No Comments