Archive for the 'Oni / Konoko Payne' Category

Recast on ONI Level 10

Thursday, August 20th, 2009

I tried Recast on ONI’s level 10. Seems to Just Work! This was all generated by clicking a button.

I guess it’s time to try “Detour” to actually do some pathfinding queries on those meshes.

EDIT: first successful pathfinding queries done with “Detour”. Just Worked. Yay!

Recast Redux

Thursday, August 20th, 2009

Some more Recast notes:

My characters use capsules with radius = 4.0 and total height = 15.0. After some tweakings I got the best results with those build parameters.

The cable holes on the ground are gone. But they did not disappear when changing the “walkable climb” value. They disappeared when changing the “cell height” from 0.2 to 0.7.

EDIT: the next paragraph is BS, see the comments.

On the other hand I still have troubles with cable holes in the small “command center”, somewhere else in that level. The nav mesh here would look very reasonable without that big hole in the middle. I didn’t manage to get rid of it. Admittedly the UI does not expose all parameters yet (like “max edge length”) and maybe playing with that one will do the trick.

I see troubles with the “walkable radius” otherwise. Even though I use the actual radius from my character’s capsule, the nav mesh misses some connections, areas that can definitely be crossed by the player. Reducing the “walkable radius” helps a bit but not much, since it’s quantized to an integer value internally. So I decrease the value a bit in the UI, nothing changes, repeat that a few times, until suddenly a big change happens because the internal code clamped the float to the next integer. Would be cool to be able to fine-tune this better.

Admittedly that mesh is not very friendly with all those narrow passages. But hey, real-world meshes tend to be painful to library developers - tell me about it!

To be continued, I will post more results after exposing the last build params to the UI.

EDIT: done! Tweaking the remaining params did not significantly change the results.

“Recast” pathfinding library

Wednesday, August 19th, 2009

John Ratcliff told me about a new pathfinding library named “Recast“. It’s open source and it looks pretty good. I am currently using PathEngine in Konoko Payne. That’s a powerful library but it has one big problem for me: navigation meshes have to be created by artists. Since I am the only “artist” in this project, it has always been a huge pain in the butt to open MAX and manually, painfully, create the nav meshes. I more or less did it in KP’s prototype, but never even started for the “real” level (especially since the level is “under construction”. No way I’ll spend time creating a nav mesh for a level which might change the next day).

So the biggest appeal for “Recast”, to me, is that it automatically builds nav meshes. I have no idea about the runtime performance or memory requirements yet, but for me this single feature makes it worth checking.

So, I did.

Pretty simple API, seems to work as advertised. Didn’t test it much yet but seems to work, and it’s fast.

  • This picture is what I get on KP’s “Depot” level. That’s what you get out of the box, without much parameter tweaking. Pretty good.
  • Only problem I see is that some cables on the ground end up creating big holes in the nav mesh, for some reason. I don’t know why yet. I don’t know if it can be easily solved by tweaking the build parameters a bit more. In any case this is a non-issue, I can simply filter those triangles out of the building process.
  • Here are the build parameters I used. You can open this from KP’s console and build everything while the game is running. So far, so good. This is one big step towards releasing KP’s source code. I couldn’t do it before since PathEngine’s license prevented it, but now everything’s possible! (I just have to replace the physics engine, duh!)

(to be continued)

KP vs GITS

Tuesday, August 11th, 2009

I’ve been working a little bit on my Konoko Payne level. I’m usually on the software engineering side of things, so progress is slow and results certainly do not look next-gen or anything. But I’m quite happy with how it turned out. With some more years of practice I might be able to create decent-looking levels :)

Anyway I was thinking about sharing a few pictures:

  • this is the whole level so far. I do not count the “prototype” level I did before, which is really not worth anything. Old ONI fans will probably recognize the last level of ONI, i.e. the Syndicate Mountain Compound. I started from that level indeed, for the top structures. I added some shadows, detail textures and a lot of new things but the basic layout is exactly the same as in ONI. As you can see though, the original entrance doesn’t go anywhere: instead there is a vertical shaft going underground. I always wanted to do a game with one of those classic underground secret bases, as in old James Bond movies or old games like Zillion. So, there. It’s also more than slightly inspired by Ghost In The Shell - Standalone Complex on PS2, as I will show just afterwards.
  • the same picture, without textures. The lighting is precomputed by Flexporter. The level is made of different regions connected by portals. Each region is an independent MAX file, to avoid stressing MAX too much with a giant monster level in one single file. Also, using different MAX files would mean different people could work on the same level at the same time easily. If only I had different people to work on this :)
  • here is a closer shot, to see more details. That’s it for now, that’s the whole level. Not much, but I haven’t worked on this for long. I mean I have the coding to do as well…

Now, as I was saying, there’s a very strong GITS influence here. So much that you could call it a complete rip-off. But hey, I’m not selling this thing, I’m only practicing my MAX skills. So no harm done. I created some cool comparison pics to show the scene in KP and the original scene in GITS. The GITS pics have been taken with a crappy digital camera so they’re kind of bad. On the other hand using a digital camera blurs everything out and curiously makes it look better than the real thing.

Konoko Payne on the left, Ghost In The Shell on the right:

Here are bigger, individual versions:

In any case this project is a lot of fun!

MAX stuff

Friday, July 17th, 2009

A while ago I started a small shaft model in MAX. I stopped this for months but now I have some time to continue. I worked a bit on it today, and made some progress. It will be included in the next KP release.

http://www.codercorner.com/Pictures/KP_SmallShaft00.jpg

Oni re-textured

Thursday, July 9th, 2009

There have been a lot of discussions in the past, about various “re-texturing” projects for ONI. So the idea is simply to replace the old small textures with high-res, modern versions. Simple enough, but because of the lack of artists in the small ONI community, those projects never went very far.

A few days ago though, someone named “Severed” released a bunch of new textures for various ONI characters. Needless to say, I immediately jumped on them and tried them in KP. So, here are some results:

I think it looks gorgeous. Of course, not really next-gen or anything, but definitely an improvement compared to the originals (which tended to be on the small and blurry side, PS2-oblige).

If somebody else wants to contribute high-res textures, you’re more than welcome :)

Konoko Payne, June 2009 release

Thursday, July 2nd, 2009

Here is a new Konoko Payne release. That’s the good thing about not having a job anymore, you get some free time for side projects :)

The changelist, grosso-modo:

  • AI: added global timestamp for taunt sounds, to make sure we don’t play N taunt sounds from N different characters at the same time
  • fixed bug with console unlocking even when player doesn’t have a datapad
  • added MB steam sound
  • added thug taunt sound (c17_99_01thug.wav, “don’t make me hurt you”)
  • reworked sound for exploding monitors
  • added one more taunt sound for ninja
  • added zoom sound for digital camera
  • reworked transitions for taunt anim from “run stop” motions
  • bugfix: “game over” was not correctly centered in 640*480
  • gun pickup is now easier when a lot of them are at the same place
  • engine: added hot loading of DDS files
  • nothing happens when touched by gun while jumping => should be fixed now
  • added blownup anims
  • added new weapon: portable mortar
  • added explosions
  • crates now glow when hit by plasma riffle & mb
  • added helicopter fight in “compound” scene
  • continued main gameplay/story
  • engine: added DEVIL wrapper in SystemPlugs
  • fixed small hiccup/lag when the datapad is spawned in compound redux
  • weapon overlay not correctly displayed in 640*480 => fixed
  • added sound instances to fix volume issues with sound emitters
  • fixed Muro’s face in monitors (was glowing too much)
  • monitor screens are now dds files
  • added “bonus objects” to collect
  • added achievements (using Xbox360 achievement bitmap & sound)
  • engine: billboards are now depth-sorted
  • + the usual lot of bugfixes and misc tweaks

So basically a lot of random stuff. The first version of the helicopter fight I previously mentioned is in. It’s interesting to see that gameplay, what makes your game a game, what makes your game fun, is not really tied to complex algorithms or clever optimizations. At the end of the day, what counts is all the tedious grunt work required to link A to B when C happens under circumstances D. If the player doesn’t figure out what to do after 60 seconds, start a special event to help him. If he does, make sure the help event is canceled. If he reaches the boss without a weapon, make sure there’s still a way to win the fight. If he defeats all the small guys, start this cutscene to show that the big guy is taking over. If he defeats the big guy, start this other cutscene. If he wants to use this item at that moment on that guy, make sure it works as the player would expect. Etc, etc. Lots of small, dirty, “ugly”, conditional code that wouldn’t win anything in a beauty contest, but that contributes a lot to the final fun factor.

In my role of newbie game designer here, I think the trick is to make sure the player is never bored. That’s probably why I keep adding new gameplay features, at the risk of never finishing this thing. For example this new release now has achievements - yep, the same as on Xbox. In ONI, if you got tired of hand-to-hand combat, you could switch to weapons. Now if you get tired of shooting, hey, you can collect those bonus objects. In the may release I also introduced the “puppet master” mode, which allows you to take control of enemies (like in Ghost in the Shell). It gives the player one more option: if he’s tired of combat, he can try the sneaking / ghost approach and walk undetected nearby enemies. The big issue of course is to make sure all the game mechanics work well together, instead of phagocyting eachother savagely. They must be well-balanced and all that. I’m certainly not there yet!

Another aspect is to make sure you thought about everything the player can try - and implemented a proper reaction. It’s like in Dungeon Master on ST in 1987. Part of why that game was so great is because no matter what you tried, the devs had thought about it first and there was an appropriate reaction in the game. Like, you’re at the very end of the game, seconds away from the ending… and no, you decide to go back all the way from level 13 to level 00 with the Firestaff… and bam! They thought about it too, alternate ending.

Some KP screenshots & a gameplay code rant

Thursday, June 18th, 2009

Some screenshots of what has been going on in the KP world recently:

http://www.codercorner.com/Pictures/KP_Mortar.jpg
http://www.codercorner.com/Pictures/KP_Helico8.jpg
http://www.codercorner.com/Pictures/KP_Helico3.jpg
http://www.codercorner.com/Pictures/KP_Helico11.jpg
http://www.codercorner.com/Pictures/KP_Explo06.jpg
http://www.codercorner.com/Pictures/KP_Explo04.jpg
http://www.codercorner.com/Pictures/KP_Dialog02.jpg
http://www.codercorner.com/Pictures/Depot03.jpg

I know, not really next-gen looking. But hey, that’s fixed function pipeline and I’m the only “artist” involved, so back off. Currently trying to do nice looking explosions without killing the fillrate.

Also trying a “boss fight” against an helicopter. It’s a 2-parts fight where you have to finish it off by deflecting mortars shot at you from the helicopter - a bit similar to what Hibana was doing to missiles in Nightshade.

At Grin, one guy once told me something like “trust me, you don’t want to implement gameplay code in C++”. He meant we should only do it in LUA. I think I disagree. Using a scripting language does not necessarily translate to better gameplay, as the recently released Grin games unfortunately proved. For me, using LUA gave me the feeling I was programming with my left hand, while the right one was tied in my back. No power, and kind of awkward. Using C++ and having access to the full engine anytime gives me a lot more freedom and a lot more control. Going back to C++ gameplay code after one year of LUA in Wanted is incredibly liberating.

As for the argument that LUA scripts give faster iteration times because you can reload them without leaving the engine, well, there is some truth to this but it comes with the proverbial grain of salt. If you put your gameplay code in a separate DLL, there is not much difference in the end between your “game” and, say, a custom format plug-in for Flexporter. Remember Flexporter? Did you have to shut down 3DS MAX to compile your plug-in and try your changes? Nope, you just had one button to press in Flex. How long did it take to recompile your custom format plug-in? Exactly : something like 2 seconds. Iteration times for developping your own format plug-in in Flex were super fast. Well there is no difference with KP. Flexporter is the game engine, the format plug-in is Konoko Payne. It does not compile as quickly as a real Flexporter format plug-in because, of course, there is more code in a “full” game, but the idea is the same, and the iteration times are fast. Sometimes way faster than what we had at Grin.

Konoko Payne demo mode

Thursday, May 21st, 2009

I quickly captured a video of Konoko Payne’s demo mode. This is a fight between Konoko and a Tanker. Enjoy!

http://www.codercorner.com/Movies/KP_DemoMode_KonokoVSTanker.divx

NB: you need a DivX codec to play this.

Konoko Payne, may 2009 update

Thursday, May 21st, 2009

Here’s a new rushed out KP release:
http://www.codercorner.com/KonokoPayne_WIP_May_2009.rar

Brief changelist:

- fixed wrong kick move when leaving initial dialog.
- improved sniper behaviour
- fixed: fallen striker doesn’t react to CrouchKickFW3 attack
- fixed: “hit foot” animation starts again and again if we “hit foot” a guy already doing the “hit foot” anim…
- fixed: enable hit foot anim on left foot only
- added hit foot anim for some NPC attacks as well, not just the player’s
- fixed: double “crouch + punch” motion for all NPCs
- reworked sharing of state machines between different NPCs. They can now have different “skins” but the same state machine.
- added stagger anims
- fixed max number of reticles for Mercury Bow in “compound redux”
- fixed missing arc when shooting at the skybox with a Mercury Bow
- added “random” button for costume selection
- added missing transitions for kick/punch/jump on runstart & runstop
- added missing kick/punch/jump transitions in land anims
- fixed black “cinematic” margins, size was resolution-independent
- fixed rendering issue for console text on health UI
- fixed: “nuclear tackle” sound not interrupted when hit
- tweaked land hard parameters
- AI now uses crouch attacks in combat
- updated/fixed some AI attacks
- fixed some bad transitions for NPCs
- added correct sniper character in “compound redux”
- added “AI groups” for easier management
- reworked “Nightshade kick” mechanism
- added “access denied” sound for locked consoles
- fixed crazy bug where NPCs run in circle behind eachother in demo mode
- added more varied punch/kick sounds
- fixed a whole lot of misc bugs/crashes/issues

shopfr.org cialis