Monthly Archives: August 2008

Context is the KEY!

Very generally speaking, the way I do autogeneration is from a broad description to a more specific description. You can have as many layers as you need along the way, in the end you’ve got to have pixels. This is really just the same thing as multilayered abstraction and it’s basically what computers do, period.

Anyhow, one of the lower level abstraction layers is that of a “renderable”. This is just a description of cubes, planes, effects, animations, and so forth to be fed to the rendering engine which is in C++. So this represents the lowest level, roughly, that I go to while in Lua (remember that Texas is mostly made in Lua, with a core engine in C++).

Renderables can operate on each other, so you can wrap one particular renderable (say a bathtub) in a reflection effect (for the porcelain). Or you can wrap another (say a windmill) in an animation (spinning); you could even wrap the whole thing again to have a reflecting, spinning windmill. It’s actually not that complicated once you get the idea.

The beauty and simplicity of renderables is that they don’t have very much context, really. They are ultimately going to represent unknown sets of GL (drawing) commands to be sent to the graphics card together with a bit of local context (i.e., specific to each renderable so it is opaque) and an update (T) function.

Sometimes you need a little more context. Normally, you want to avoid additional context. You actually want to keep things loose, and intentionally *NOT* care how big something is, for instance, or whether it’s an effect or an object or whatnot. You can still have code internally that sorts this out, but when you’re generating these things, you ordinarily just want to know that you’ve got yourself a Renderable, and not worry beyond that.

Which brings us to my current situation. The one bit of context that is useful, the “next most basic bit” of context as it were, is spatial context. Not in terms of position, but in terms of size. So we’d like to know, not just that this is a Renderable, but this is a Renderable that “somehow fits” into a given 2D (L, W) space. When I call this context, what I mean is that it’s public context. So think of this as an AreaFiller, not just a Renderable, because it “fills” a given area which you pass in. When we want to “draw” an AreaFiller, it not only needs it’s own local opaque context, but also (L, W) context to passed in by the user class. When we “draw” an AreaFiller we’re actually producing simple renderables.

Here are examples of some AreaFillers:

1. Books. We can create a books areafiller by describing the properties of the books it will fill. We specify everything about the size and shape of the books, including their overall height. We could conceivably specify a number of books, as well, but more likely we would specify a “density” factor.

2. Towels. Sort of like books, but laying down. We’d specify the average width of a towel, how many tall they could stack, and so forth.

3. Trinkets. We could specify a big list of renderables (or, functions generating renderables), along with some way to change their sizes slightly.

You’ve now created your AreaFiller, let’s use it. Let’s create a shelf renderable. Pass in the dimensions of the shelves, how many there are, the type of wood to make it of, thickness of the boards, that sort of thing. Also pass in an AreaFiller. What areafiller? It doesn’t matter. The shelf can use the AreaFiller to put things on itself; the shelf when generating knows the (L, W) context of each individual shelves. Because AreaFiller defines only areametric space, not location context, we can also place the objects wherever we want.

Voila, we’ve now separated shelves from their contents, making it mix-and-matchable. Better yet, when we create a table we can also use AreaFillers to put trinkets, towels or books on it. Hopefully you get the picture. These kind of things are actually my deepest, hardest won secrets of autogeneration. Continue reading

Posted in Uncategorized | Comments Off

Quake Expo 2008

Every two years, besides some exceptions, the Quake communities come together to show off their stuff at the online Quake Expo. This includes players, mappers, modders and engine programmers from original Quake, Quake 2 and Quake 3. It focuses on the games that have open source, hence the lack of … Continue reading

Posted in Uncategorized | Comments Off

iPhone dev & bodily destruction & PAX’08

So I’ve been doing iPhone dev for about 2 months straight now.  Just yesterday I sent my latest Galcon update to Apple.  This update includes multi-player wicked-awesomeness.  It will be available whenever Apple approves it.  I plan on doing a bug-fix update a week or so later to resolve any odds-and-ends that come up.  In [...] Continue reading

Posted in Uncategorized | Comments Off

Owls Arisen

Here’s some of the stuff I’m thinking of to keep Rise 2 a smaller project, but still make it involving and interesting:



  • Obviously, a whole lot more heroes. If I can get 200 in there, so much the better! But the goal is a minimum of 100. They’re fairly easy to make, but I want them to be unique too, which complicates it. It’d be boring if 10 of them were Archie at 10 levels of power.
  • The original vision of the game doesn’t involve all this wacky cloning. Rather, you can have one of every hero. Once you’ve bought one, he won’t show up in the inn anymore. After all, these people are unique individuals! That of course is what necessitates such a huge number of heroes.
  • On the other hand, I also want to include a second game mode, Clone Mode or something. In this mode, you hand-pick 8 heroes from the entire collection, and your inn is permanently stocked with those 8 heroes all the time. You can of course buy more than one of the same in this mode! So this mode is like a collectible card game – build a deck and see how well it works.
  • Haven’t decided exactly how this should be, but I originally wanted a skill tree of sorts. So you might lay down lots of archers, planning to invest points into skills that improve arrows. That sort of thing. The skills would be general upgrades to all your units, or certain types of units. Something that would be fun, but probably wouldn’t make it in, would be to add special powers in there. So for example once every 60 seconds you could click on an icon to make it snow, keeping all enemies frozen for 10 seconds.
  • Lots of little achievements to complete, to give you more of a goal than just finishing the game.

As for game modes, I thought there’d be a few different ‘quests’, which would be sets of levels. Some real easy short ones, some long and crazy ones, and then of course, you can’t leave out Survival mode that never ends.


Here’s a really fun idea I had that definitely isn’t going in, but would be an awesome sequel (Rise 3: The Leavening). You pick 3 heroes, and they go on an adventure. They function exactly as they do in the game normally (same ranges and all that), except that they move to wherever you click, in a sidescrolling world. They kind of run in a line, one following the other. That just sounds pretty awesome to me. You’d have to decide if you want a Jessie in the middle to make your other guys powerful, or if you are better off with a 3rd person dishing out damage. Oh, and of course, you just start with Archie, and you get money by killing monsters which you use to buy better heroes and add to your party until it’s 3 people, then swap guys out until it’s the mighty force you’ve always dreamed of.


So, guess I better learn actionscript! Continue reading

Posted in Uncategorized | Comments Off

Tower Infinite

Over the weekend, I participated in a 48 hour game development contest, Ludum Dare 12, the theme of which was “The Tower.” My entry is called Tower Infinite, and it is an infinite procedurally generated platformer. The voting for the contest is still in progress, but I will post the … Continue reading

Posted in Uncategorized | Comments Off

Postmortem: Pfff (LD12)

This postmortem covers my experience with the 12th Ludum Dare 48 hour game competiton, which took place on the weekend of August 8-10 2008.

Final post

Timelog

 

Summary

The Tower came out as the result of the 2nd round of theme-voting. A somewhat less abstract theme than the last couple of times. Not necesarilly bad, but I do usually prefer the abstract themes.

My initial idea was to let the player use a grappling hook-thing to climb a tower. However, the physics of this gameplay urned out to be too much of a headache to get working as intended. Which was demotivating, seeing as I didn't come up with any alternative/better ideas.

So after struggling with implementation problems of the physics, I decided to simply ditch the whole thing; idea and all. Luckily this was still early in the competition, so this decision was not going to have as big of an impact as continuing struggling would have had. However, being left with nothing re-usable, I had to get inspired and get an idea quickly. A short walk did it for me. Because it was windy, I got the idea of pushing crates off the rooftop of a tower/skyscraper by controlling/drawing the wind.

I decided to run with that. Good thing I did too, considering that the wind gameplay was surprisingly easy to implement. As a result of this decision I had the main game mechanic completed mid-day 1.

 

 

What went right

Ditching idea that went bad

I'm pretty certain that I saved my spot in the list of entrants because of my choice to ditch the first idea i went with. I think I would have wasted an entire day+ simply on tweaking physics variables.

Controls

The mouse controls came out very intuitive, and made the toy easy and fun to use.

Toy

Supported by intuitive controls, and combined with proper rigid physics, the wind mechanic just worked.

Sounds

All sounds in the game were created by me simply blowing into my microphone, and they just sounded right in first go. Who knew wind sounds could be made so easily.

 

What went wrong

Requirements

I almost don't want to include this again, seeing as it's always in this list. But as usual, this competition is not suited for heavy use of Microsoftian technologies.

Presentation of concept

After completing, it has become apparent to me that the concept of the game did not come out very clearly. Which means I could/should have presented it better.

My intention was to let the player use the wind-toy to explore the content and while doing so discovering achievements. But since there were no "prizes" for discovering/completing these, it did not come through very clearly that this was the whole idea of the game. Also, I implemented these achievements way too late in the process (end-day 2) and as a result i ended up with a minimal amount of them. There simply had to be more to support the concept.

Sleeping

When day 1 was coming to an end I decided that I didn't want to stay up too late. I thought i'd rather go to sleep early, and be fresh and lucid the following day, than staying up pushing code.

My plan didn't go too well, though. I was literally twisting and turning for a good couple of hours before finally passing out. My mind was simply not able to turn off because I didn't relax, by watching tv or whatever, prior to hitting the sack. Made me a bit cranky the following day.

 

 

 

Conclusion

I'm quite satisfied with my work this time around. Sure there's a bunch of stuff I could have done better. But let's face it, there always is. I had fun. I got stuff done. What more can you want?

 
Continue reading

Posted in Postmortem | Comments Off

Postmortem: Pfff (LD12)

This postmortem covers my experience with the 12th Ludum Dare 48 hour game competiton, which took place on the weekend of August 8-10 2008.

Final post

Timelog

 

Summary

The Tower came out as the result of the 2nd round of theme-voting. A somewhat less abstract theme than the last couple of times. Not necesarilly bad, but I do usually prefer the abstract themes.

My initial idea was to let the player use a grappling hook-thing to climb a tower. However, the physics of this gameplay urned out to be too much of a headache to get working as intended. Which was demotivating, seeing as I didn't come up with any alternative/better ideas.

So after struggling with implementation problems of the physics, I decided to simply ditch the whole thing; idea and all. Luckily this was still early in the competition, so this decision was not going to have as big of an impact as continuing struggling would have had. However, being left with nothing re-usable, I had to get inspired and get an idea quickly. A short walk did it for me. Because it was windy, I got the idea of pushing crates off the rooftop of a tower/skyscraper by controlling/drawing the wind.

I decided to run with that. Good thing I did too, considering that the wind gameplay was surprisingly easy to implement. As a result of this decision I had the main game mechanic completed mid-day 1.

 

 

What went right

Ditching idea that went bad

I'm pretty certain that I saved my spot in the list of entrants because of my choice to ditch the first idea i went with. I think I would have wasted an entire day+ simply on tweaking physics variables.

Controls

The mouse controls came out very intuitive, and made the toy easy and fun to use.

Toy

Supported by intuitive controls, and combined with proper rigid physics, the wind mechanic just worked.

Sounds

All sounds in the game were created by me simply blowing into my microphone, and they just sounded right in first go. Who knew wind sounds could be made so easily.

 

What went wrong

Requirements

I almost don't want to include this again, seeing as it's always in this list. But as usual, this competition is not suited for heavy use of Microsoftian technologies.

Presentation of concept

After completing, it has become apparent to me that the concept of the game did not come out very clearly. Which means I could/should have presented it better.

My intention was to let the player use the wind-toy to explore the content and while doing so discovering achievements. But since there were no "prizes" for discovering/completing these, it did not come through very clearly that this was the whole idea of the game. Also, I implemented these achievements way too late in the process (end-day 2) and as a result i ended up with a minimal amount of them. There simply had to be more to support the concept.

Sleeping

When day 1 was coming to an end I decided that I didn't want to stay up too late. I thought i'd rather go to sleep early, and be fresh and lucid the following day, than staying up pushing code.

My plan didn't go too well, though. I was literally twisting and turning for a good couple of hours before finally passing out. My mind was simply not able to turn off because I didn't relax, by watching tv or whatever, prior to hitting the sack. Made me a bit cranky the following day.

 

 

 

Conclusion

I'm quite satisfied with my work this time around. Sure there's a bunch of stuff I could have done better. But let's face it, there always is. I had fun. I got stuff done. What more can you want?

 
Continue reading

Posted in Postmortem | Comments Off

Postmortem: Shaky? (LD11)

This postmortem covers my experience with the 11th Ludum Dare 48 hour game competiton, which took place somewhere around April 2008.

Final post

Timelog

 

Summary

Been a while since this took place, and I totally forgot to write down what happened back when I could actually remember it. So this post-mortem will be rather short. These things work better right after completing the game, but I just don't want to break the order of my posts! ;)

The theme resulted in Minimalist, which I would consider to be a rather abstract theme; that is, something less tangible than say BOATS. I totally dug that theme since I felt it was incredibly open for anything, and also invites for creating something very simple. However, simple also means you should probably aim for something stylistically beautiful rather than something fancy. Which can be hard to achieve.

 

            

 

What went right

Freshness

Gameplay was new and interesting, with the huge upside that it worked on any arbitrary 3d model. Meaning that it was easy to just add more content fast.

Simple presentation

The gamescreen was stylistically minimal and just displayed a score, and the actual model. It worked great, because the game was, in fact, totally simple and minimal – which happened to fit the theme! Whoa!

 

What went wrong

Muzak

I have never had a knack for creating music, and I have pretty much no clue which tools one should use. But this time there was a LD member who had created an easy-to-use retro music creation tool, so I thought i'd try and make something.

Unfortunately it turned out that I should probably just stay away from trying to create music. Forever. The tracks I made were really horrible and ear piercing :)

Camera

I attempted implementing an arcball camera, but it just didn't work out for me. I never got it fixed, so the camera control on the final build were totally inverted and just not intuitive at all. The game would have been better off without it.

 

 

Conclusion

Bring the next!

Continue reading

Posted in Postmortem | Comments Off

Postmortem: Shaky? (LD11)

This postmortem covers my experience with the 11th Ludum Dare 48 hour game competiton, which took place somewhere around April 2008.

Final post

Timelog

 

Summary

Been a while since this took place, and I totally forgot to write down what happened back when I could actually remember it. So this post-mortem will be rather short. These things work better right after completing the game, but I just don't want to break the order of my posts! ;)

The theme resulted in Minimalist, which I would consider to be a rather abstract theme; that is, something less tangible than say BOATS. I totally dug that theme since I felt it was incredibly open for anything, and also invites for creating something very simple. However, simple also means you should probably aim for something stylistically beautiful rather than something fancy. Which can be hard to achieve.

 

            

 

What went right

Freshness

Gameplay was new and interesting, with the huge upside that it worked on any arbitrary 3d model. Meaning that it was easy to just add more content fast.

Simple presentation

The gamescreen was stylistically minimal and just displayed a score, and the actual model. It worked great, because the game was, in fact, totally simple and minimal – which happened to fit the theme! Whoa!

 

What went wrong

Muzak

I have never had a knack for creating music, and I have pretty much no clue which tools one should use. But this time there was a LD member who had created an easy-to-use retro music creation tool, so I thought i'd try and make something.

Unfortunately it turned out that I should probably just stay away from trying to create music. Forever. The tracks I made were really horrible and ear piercing :)

Camera

I attempted implementing an arcball camera, but it just didn't work out for me. I never got it fixed, so the camera control on the final build were totally inverted and just not intuitive at all. The game would have been better off without it.

 

 

Conclusion

Bring the next!

Continue reading

Posted in Postmortem | Comments Off

The Owls Have Risen

Rise Of The Owls is here! It’s a freebie, and it’s short, sweet, simple, and strategic! It actually is, I swear. You may find that it’s easy to win, but can you get the top score? My record is only 570,000, but there are isolated reports of over two meeellion points!


As you may know, I on occasion take 48 hour games and make them into something more. Such is my plan for Rise Of The Owls. However, I’m releasing it as is – that’s Rise Of The Owls. Rise Of The Owls 2 (The Risening? Owlectric Boogaloo?) is a whole different story.


This is the plan I am thinking of right now.


  • Step 1: Learn to program Actionscript (flash).

  • During Step 1: Make Rise Of The Owls 2 in flash.

  • Step 2: ??????

  • Step 3: Profit!


Perhaps I should add some details to step 2 to help clarify it. I want to make Rise 2 a flash game, which you need to be logged into your Dumb Account to play. You’ll earn and unlock new heroes by getting trophies! And other hidden ways. It’ll truly be integrated right into the site in that way.


Don’t want to get your heroes the hard way? Lucky for you! There is also a downloadable Rise 2 which either gives you all the heroes right away, or maybe has you unlock them in simple in-game ways, like accomplishing simple goals like “Get 10 kills with Archie”. That costs money.


So if you like free stuff, you can play the free version (good news from my end: to get all the heroes, you’ll have to buy my other games! Can’t earn all the trophies without owning some of the games, right?). If you like easy stuff, you can buy the pay version.


Such is my plan for Rise 2. I think it’s good to be learning worthwhile skills like flash development instead of endlessly iterating over that same dead old codebase. I think I’m going to spend this week on some of that learning mumbo-jumbo and see at the end of the week if I think I’m better off continuing that full time until it’s done, or getting back to HPG and considering flash something for my spare time. Tomorrow I’ll blog about some of the features of Rise 2. It will be at heart the same thing you see here, same type of game for sure, but major key upgrades that make it all worthwhile. Continue reading

Posted in Uncategorized | Comments Off

I make games to piss you off

Slightly off topic today. Well, if you’re expecting mystery iPhone game news that is.
The weekend ended up being a little more slack-tastic that I’d hoped. Ludum Dare 12 after all, which always keeps me busy.
With only a couple hours left, I decided I’d throw something together quickly. Well, those couple hours went [...] Continue reading

Posted in Uncategorized | Comments Off

Welcome To The Journal

We’ve got fun and games! Actually we don’t at the moment. I have not blogged in quite some time. Next week, I will endeavor to fix that, but for now, I will just tell you that another fine LD48 contest is coming up this weekend, and I shall rip it to shreds with great panache by making something that makes WoW look like Atari 2600 Adventure. Or, I’ll make Guess The Number. We’ll see on Sunday.


The monster maker is done now, except for loading, saving, and testing (in any form). Loading & saving is nothing, I just haven’t bothered since there’s nothing worth loading or saving yet. That’s because the testing is held up by the same thing everything else is – I need to make monsters actually function! Right now the guy in the tank can only walk in circles, no matter what kind of moves you give him. I need to implement the whole concept of the creature choosing and executing the various attacks. It’s actually going to only take a couple of hours, but nonetheless it is what remains between me and functional adversaries.


As always with summer, it’s been pushed around by other things, like helping the lady get her classroom set up, the occasional minute or two spent on WoW, preparations to embarrass myself at PAX, family, and general summeryness. It’s pretty frustrating to have things moving along so slowly, but at least it feels like it is getting made. Someday it will be done, we just don’t know when! Continue reading

Posted in Uncategorized | Comments Off

Forum Change

Hey,
I was finding the bbpress forums weren’t really working out for Galcon.com
But I’ve found that the forums I was using for the Desktop version of Galcon have always worked just great! So I’ve set it up so that Galcon.com actually has the same forums. I will probably be enhancing them a [...] Continue reading

Posted in Uncategorized | Tagged | Comments Off

Forum Change

Hey,
I was finding the bbpress forums weren’t really working out for Galcon.com
But I’ve found that the forums I was using for the Desktop version of Galcon have always worked just great! So I’ve set it up so that Galcon.com actually has the same forums. I will probably be enhancing them a [...] Continue reading

Posted in Uncategorized | Tagged | Comments Off

Ludum Dare 48 Hour Challenge #12

It’s time again.  Seems like just a short bit ago I was working on LD48 #11, and maybe it was.  The contests are on a much better schedule now which should help in participation.  I’ve been keeping myself busy working on a reborn and re-imagined project from back in ’03.  I’ll probably release more info [...] Continue reading

Posted in dev, gamedev, ld48_12, Ludum Dare | Comments Off

Orb-7

Due to my recent discovery that the name “Rebound” is taken by multiple other games, I have decided not to use the working title “Rebound” as the official name of my project. Rather, after much brainstorming and search for a name that is not taken, I settled on a simple … Continue reading

Posted in Uncategorized | Comments Off

Flexibility and Staying in Touch!

Flexibility means being able to change your plans; being an indie game designer, this is one of your greatest assets. If you see something isn’t working, you can throw it out, and there’s nobody to convince but yourself. Likewise, if you feel that an idea or implementation idea has lost some of it’s lustre, or isn’t big enough, then you can throw it away and replace it with something else.

Staying in Touch means keeping to concrete, small ideas which together will lead to the complexity and fun you ultimately desire. As a well meaning game developer you can plan any number of game systems that don’t work in the end; and in fact I have done this on a number of occasions. It’s so hard not to think ahead, to envision even just something semi-grandiose! But that never works. You have to to stay in touch, do things one step at a time, and try always to make the best decision for now, not for later. Because by the time you get to later, things are rarely coming together as you’d hope.

This is what it means to break new ground. If you’re just implementing a tried and true formula, the rules change. But that’s not the point of doing indie games, or at least, not for me.

To this end, I’m going to sort of only stick loosely to the original game plan that I had, at least in terms of story. I think that the castle that I’ve implemented, which is huge, is an excellent and fun parallel universe. So why give it the minor role it had in my original plans? Instead, I’m going to start the story here, in the real world. The basic premise for the game will not change, and the many gameplay ideas and story elements I’ve sketched out over the past year or so I’m sure I’ll end up using, but ultimately I’m going to just look at this concrete, fun gameplay environment I’ve created and ask myself, “What should I implement right now?”.

I’m going to ask myself that, and keep answering it, over and over, until it’s done.
Continue reading

Posted in Uncategorized | Comments Off

Galcon color-blind Test

Hey, I’m trying to get Galcon-iphone to work for the color-blind population
Here’s the colors I’m thinking about using. If you are color-blind can you tell me if you can discern between the colors? If not, please tell me which numbered colors you are having difficulty with.
Thanks!

Continue reading

Posted in Uncategorized | Comments Off

Galcon Color-blind Test

Hey, I’m trying to get Galcon-iphone to work for the color-blind population
Here’s the colors I’m thinking about using.  If you are color-blind can you tell me if you can discern between the colors?  If not, please tell me which numbered colors you are having difficulty with.
Thanks!
-Phil

Continue reading

Posted in Uncategorized | Tagged | Comments Off

Galcon Color-blind Test

Hey, I’m trying to get Galcon-iphone to work for the color-blind population
Here’s the colors I’m thinking about using.  If you are color-blind can you tell me if you can discern between the colors?  If not, please tell me which numbered colors you are having difficulty with.
Thanks!
-Phil

Continue reading

Posted in Uncategorized | Tagged | Comments Off