Sunday, August 30, 2009

WinForms!


Woo, I stuck my editor inside a WinForm form and now it looks great. New features include unlimited undo/redo! And also saving/opening. I'm making some good progress, but I'm still nowhere near complete.

Implementing undo/redo was a pretty fun and frustrating exercise. The frustrating part is making sure your redos are perfect mirrors of your undos.

Tuesday, August 18, 2009

Advanced Map Editor

More features!

- Angled blocks
- Rotate blocks
- Select multiple items!
- Delete items
- Extrude sections
- Contract (? opposite of extrude) sections
- Move selected items by keyboard

The multi-select feature took forever. I am almost certain that the built-in ray/plane intersection function in XNA is broken, or implemented really weirdly. I wasted 8+ hours trying to resolve that issue.

The green part in this picture is the selection highlight, when you drag your mouse. It selects all the blocks on that plane.


Coming this week: object placement and serialization! This is just the map editor for the game, as you can probably tell.

Thursday, August 13, 2009

Performance and GUI

Less than 50 days left!

Regarding some previous comments:
These cubes are just for the editor. The actual game will show game models that replace the top level cubes, so on the one hand, I'll have to be drawing even more complex stuff, but on the other hand, now occlusion culling will be useful (with just cubes, it's pointless, since it needs to draw a bounding box first anyways).
I added frustum culling too, so now it only renders things in the current view.

I also have a culling system where it doesn't draw any object that is surrounded on all 6 sides by cubes. This, along with the frustum culling, vastly improved my FPS. I still will have problems though, when I have to make some large scenes with lots of models everywhere. I think my bottleneck is too many begin() and end() calls (one for each block!), so I'm going to figure out a way to lump them all together into one draw call. Doing that should far surpass every other optimization I make.

I also added in simple, clickable text buttons:


Tuesday, August 11, 2009

Programming

Don't you hate/love it when you have this brilliant, humongous method that took you hours to write, and it works great, but suddenly you figure out a much better way to solve the issue with just a few lines of code?

That was me today, with collision detection. Also, it took me a long time to figure out why my grid of 1000 blocks was taking up 250mb of ram. It turns out that each block had its own BasicEffect, which apparently is pretty big.

So all in all, everything looks exactly the same externally, but I'm much more comfortable with the program internals now.

Tommorow I will add frustrum/occlusion culling to push my framerate up from 15 fps. 1000000 cubes stacked into a giant cube, without culling, is bad for your health!

Monday, August 10, 2009

Map Editor

I now have the foundations of a simple map editor. If you click on a box, it connects another box to the face you clicked on.

Internal additions:
GUI system (crosshair!)
Grid system, to manage the world objects


Orange!

Saturday, August 8, 2009

Some progress

It's hard getting work completed on the weekdays, but I got a small chunk done today. Nothing to see, just some framework stuff. I guess I haven't told you much about the game itself yet. I'll just say for now, it's a puzzle adventure game... with a twist (of course).

In other news, Joseph Burchett did a podcast interview with me at The Game Developer's Radio. I talked mostly about the development of Storm.

Also, look at this amazing deal! I bought the 10-pack the moment I saw it.

Sunday, August 2, 2009

It has begun

I went out and bought one of those giant (and expensive) pads of paper, a box of Crayola markers, and some Scotch tape. I'm drawing everything out, and designed the game structure and taping up these big 27"x34" sheets everywhere in my room.

And now I've officially begun coding. It's going to be in XNA.

Here's what I have so far:


In addition to being able to view this box of cats, I've set up a camera system and a first person style camera (just for testing, the game won't be first person). I also set up the scene node system. And you can see my sweet VS color scheme!