Overgrowth Alpha 27
Here is what is new in Overgrowth in this weekly alpha. If you are confused what a weekly alpha is, or even what Overgrowth is, please read our fancy FAQ. Basically, we are developing a massive video game from the ground up -- we are able to do this completely independently by accepting preorders for the game before it's done!
Aubrey has committed a bunch of new art this week, and I've included all of that in the alpha.
Here are a few highlights from the source repository:
- Added billboards for hotspots
- Decal editor improvements
- Some fixes to the alpha menu
- New OS X style tooltips
- Improved sound scripting (can control volume, pitch, and position now)
- Fixed keypresses going to console
- Decal lighting and shadowing
- Bug fixes
Here is a scene from the new alpha (load DogTomb.xml to check it out)
Thanks as always for all the support! See you guys in IRC and the forums.
Why ninja rabbits?
John reports that "Why did you pick ninja rabbits?" is one of the most commonly asked questions from interviewers and fans on our live chat. For Lugaru, the answer is simple -- back in high school, I thought it would be fun to make a game about my dog Wolfie. This idea evolved into a game about wolves fighting rabbits. A more interesting question is: "Why did you keep the idea of ninja rabbits in Overgrowth?"
Unique setting
Most games featuring melee combat take place in an anime-inspired world of ninjas and robots, or a dungeons-and-dragons-inspired world of barbarians and wizards. It would be very difficult to make another game in these worlds that would explore new territory and provide a new experience. Our setting of animal warriors and ancient monoliths really helps us stand out from other fighting games -- and can make gamers stop and check us out when they first see movies and pictures of rabbit ninjas doing crazy acrobatics.
Another advantage of this setting is that it allows us to avoid showing violence against humans, while using human-like martial arts. If we want to make a very violent game without trivializing human violence, using non-human characters is a good first step.
Distinct character classes
Using animal warriors allows us to tap into our knowledge of real-world animals to create distinct character classes. We all know that rabbits jump high and wolves have big teeth. We can use this basic knowledge to establish complex relationships between the different species' abilities in a way that is intuitive to players. Whenever we have a setting with clear rules, we can reverse them to create interesting exceptions, such as a courageous rabbit who fights back against bigger and fiercer creatures.
Technological feasibility
It is a lot more feasible for us to render animal characters than to render human characters, since we can sidestep the uncanny valley. We spend a lot of time looking at other humans in our day to day life, so we can easily spot tiny errors in a computer-generated human face. However, we spend very little time looking at anthropomorphic animals. This gives us a much larger margin of error to work with before the characters start to look 'wrong'.
Animals also have physical differences that are easier to convey quickly to players from a distance. The different species all have different sizes and silhouettes, and different characters within each species have different fur colors and patterns. This is very useful in a third-person fighting game, because enemy characters are often very small on the screen, and would be hard to identify with more subtle distinctions.
Is it the right decision?
The big game companies tend to stick with tried-and-true characters like gangsters, space marines, world war two soldiers, ninjas, and barbarian heroes. These characters have proven very popular in the past, so they are re-used over and over. Maybe this is just inertia, or maybe those are really the only reasonable choices. What do you think? Should we keep using animal characters in Overgrowth, or switch to something else?
Overgrowth text editor
Hey guys, one thing that is important for the Overgrowth editor is being able to edit and create scripts efficiently. To do this, Phillip asked me to make a text editor UI widget so we can work on stuff within the game. I started out by making a simple text editor. Since we are using webkit as our UI layer via Awesomium, this was really easy using standard HTML and CSS. I basically just made a textarea
tag.
Since that only took a couple of minutes I decided to polish it a little. I decided to embed an open source text editor called CodeMirror. This gives us some cool editor features like paren matching, syntax highlighting, and other niceties that programmers are accustomed too.
Since CodeMirror is written in JavaScript / HTML, it took only a couple of minutes to swap out my vanilla textarea
and embed CodeMirror instead. I am pretty confident that Overgrowth now sports one of the best embedded raw code editors of any video game and it only took me a couple of hours thanks to open standards!
It would be pretty easy to write a syntax highlighter module for GLSL so that we can extend this editor to shaders. That would make our live texture/shader updating even easier! I think I might leave that as an exercise for the reader though, while I work on the animation editor. ;)
Decals editor ~ part two
Last week I introduced our prelminary decal editor for Overgrowth. At that point, the decal editor worked very much like the object editor, with 3D bounding boxes for each decal. This presentation style was quite messy. Decal editing has many of the same requirements as object editing, but it also has its own special conditions and constraints. Unlike objects, decals live on 2D surfaces, they are projected, and they will often be layered on top of one another. This week I worked on making decal editing more custom tailored to the nature of decals themselves. I think a video shows it best:
Click here to watch it in HD!
There are now two modes for interacting with decals: surface mode and projector box mode.
By default you start in surface mode. This mode is meant to be an easy way to quickly arrange smallish decals. All controls and graphics for each decal are projected onto the world in the same way as the decal itself is. With this mode, you get to work directly on the surface you are editing, sliding decals all about in a physcially intuitive way.
However, sometimes more powerful control is required. Our decal system works by projecting 2D images onto the ground. Thus, each decal is internally represented a 3D projector box, which shoots a decal texture from its front face to its back face, wrapping the texture across anything hit in between. In surface mode, the projector is automatically aligned to project head on with the surfaces it hits. This minimizes the distortion of the decals. But at times, we may want stretched and distorted decals, such as for elongated shadows and splattered liquids. We also may need to fine tune the projection direction in tricky situations, such when projecting onto a bumpy surface for which no single direction can, exactly, be called "head on."
This is where the projector box mode comes in. This mode allows full rotational control over the projection direction. In addition, the projector box mode allows the user to scale the third dimension of the projector: its maximum projection distance. Having a maximum projection distance is important. Otherwise, if, say, you are covering a tree in slime mold decals, you may find that some parts of the decals miss the trunk, fly across the map, and splatter all over your charming rabbit village.
What do you guys think of these two decal editing modes? There's still a lot of embellishment I want to add (for example, scrolling to navigate through layered decals). Do you guys have any suggestions for more functionality specifically tailored to decals?
More Memorable Meebo Moments
Hey guys. As many of you know I operate the live chat widget on our contact page to help answer people's questions about Overgrowth. While live chat generally seems to be a productive resource for many people, silly conversations do sometimes happen. Enough time has passed since my last silly meebo post that I thought it was time to share another wave of conversations with you:
wolfirejohn: hey
wolfirejohn: I like your name
john: me too
john: F**k you guys
wolfirejohn: :)
wolfirejohn: hey there
wolfirejohn: what can I do for you?
Blacbeard: lol, well my friend and I had a bet whether you would actually respond
wolfirejohn: who won?
wolfirejohn: and what did the winner win?
Blacbeard: He won a dinner
wolfirejohn: wow
wolfirejohn: a fancy dinner?
Blacbeard: pizza hut
Blacbeard: one of the few places on campus
wolfirejohn: hehe, cool
Blacbeard: so thanks for that...
meebme951578: Bearded one?
meebme951578: Fine, dont answer
meebme951578: me
meebme951578: ...
meebme951578: I AM SO SAD AND DEPRESSED AND HOMICIDAL!
Stuzer: wait give me a sec i think something exploded in the kitchen BRB
Stuzer: False alarm toaster just sent another slice of bread through the ceiling
Stuzer: joking just the oven dinging
wolfirejohn: sounds like a close call
meeboguest895925: Ah, but the anonymity! So much power!
meeboguest895925: What if all this time, it's all been one person messaging you?
wolfirejohn: no one can type that fast :)
meeboguest895925: THERE IS NO OVERGROWTH FANBASE, JUST ONE DUDE IN HIS BASEMENT
wolfirejohn: hey
wolfirejohn: what can I do for you?
meeboguest680932: I wondered if you have any tips to grow such a cool beard
wolfirejohn: well the trick is to be proficient at wielding a battle axe
wolfirejohn: that and not shaving
meeboguest680932: Awesome I'll start practicing then
wolfirejohn: you have to channel your inner war dwarf
wolfirejohn: bagpipes might help too
Mighty183: no one is going to buy a yard sign lol
wolfirejohn: hehe
wolfirejohn: I got the banner
Mighty183: Ill get her the thong
Mighty183: but I doubt she'll be my best friend after that
wolfirejohn: haha
Please don't be sad or homicidal if I'm busy when you try to chat with me. As long as you leave me your questions and an email address where you can be reached I'll get back to you as soon as I can. Remember I'm only human (though some of you have accused me of being a robot).