Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411469 Posts in 69368 Topics- by 58423 Members - Latest Member: antkind

April 23, 2024, 08:42:58 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsLemma: first-person parkour
Pages: 1 ... 6 7 [8] 9 10 11
Print
Author Topic: Lemma: first-person parkour  (Read 42904 times)
etodd
Level 3
***



View Profile WWW
« Reply #140 on: March 20, 2014, 12:53:35 PM »

An update from the Kickstarter:

First: I wanted to thank everyone for the amazing support you've shown so far. We're already over 24% funded, which is more than I was expecting this early, so thank you!

Second: A quick update on the Greenlight campaign. We are 26% of the way to the top 100, with 1,918 "yes" votes! Keep on voting, we'll be on Steam in no time.

Third: If you wanted to see more gameplay from Lemma but didn't have time to check out the demo, several YouTubers have posted "let's play" videos of the demo. Draegast has

.

Fourth: Although I am busy promoting the game, development continues. You can actually track my progress on GitHub since the engine is open source. You may have seen the "power" system in the demo, where the blue material you create can actually transmit power from a power source. In the demo it was really only used to trigger explosives, but yesterday I built a new "switch" object which can trigger other things like elevators. Connect the source to the switch, the elevator goes up. Disconnect the power, it comes back down. Here's a test I built in the sandbox:



Power source on the left, switch on the right.

Fifth: Tomorrow at 6pm EST I'll be streaming on Twitch. Subscribe to the channel and you can be notified when the stream goes live.

I'll show off the level editor and play back recordings of people playing the demo. Here's an example showing how I track players progressing through the demo (don't worry, it's anonymous, no one has to know you missed that jump 8 times on level 3):



So this is what it feels like to be the NSA.

It'll be a good time.

Thanks again for your support. More updates forthcoming!
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #141 on: March 20, 2014, 01:28:03 PM »

Lol, love the playback!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #142 on: March 20, 2014, 07:34:55 PM »

Some people were having issues running the game, so I uploaded a patch that should hopefully fix it. It also makes a few other control changes and bug fixes.

The biggest change is that the roll and kick moves are now combined onto one button. There really was no need for separate buttons, they do practically the same thing and the context makes it pretty clear which one needs to be done.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #143 on: March 26, 2014, 01:32:12 PM »

From the Kickstarter, a quick status update before I talk more about Lemma:

  • At the current rate, we are just minutes away from 4,200 yes votes on Greenlight! 56% of the way to the top 100.
  • A big thank you to our new backers! There are now 174 of you lovely people (wow) and we're over 32% funded.
  • Rock Paper Shotgun covered Lemma yesterday! And with that headline, we've added Bastion to the incredibly long and disparate list of games it's been compared to.
  • Kill Streak Media posted a fairly in-depth interview.
  • Death By Beta also ran a nice little article.
  • In case you missed Caitlin Clark's comment earlier, Lemma was her top pick for Kickstarter games that are

    , along with several other promising-looking games!
  • Another great "let's play" video from YouTuber

    .

Okay, let's talk about future plans!

Enemies and systems

Be ready for GIFs. You can click each one to see the faster, shinier HTML5 version.

If you missed the livestream yesterday, I showed off a few features that I already built but didn't have time to put in the demo. One is a glowing block enemy that can rip out pieces of the environment and fling them at you.



Another variant on the same idea is an enemy that builds up a structure of red blocks, then explodes.



All the enemies in Lemma change color based on a simple color-coded stealth system. Lemma is not a stealth game, but this system makes it easy to tell when you've been spotted: white means the enemy is idle and doesn't see you. Yellow means the enemy saw something and they're on alert. Red means the enemy will actively chase and attack you.

One feature that's still in the experimental phase is something I call the "expander" block, which is a block that expands outward when you touch it. It's inspired by a similar feature in the incredible Starseed Pilgrim (play that game, it will change your life).



Again, it's still very experimental and may change a lot, but it's a good example of the kind of interactive systems I'd like to build into the game.

Level design and story

Yesterday on the livestream I started work on another level (or world). Here it is in action:



It's a valley that wraps around in a square shape. The valley is mostly empty, so it's up to you to fill it with structures to make it navigable. In the center of the square will be a giant structure with machinery that needs to be put in place and activated. The square design means you can approach it from any angle and move through the level however you want. This is pretty much my level design manifesto: you can beat it however you want.

Furthermore, the machine in this world will be only one of many, which can be activated in any order. There will be portals to other worlds, each with their own challenges to overcome before they can be activated.

I can't really say too much about the story except that it has a lot to do with these worlds and why and how they're being "activated". I will say there's a pretty big finale planned for the end.

That should shed some light on my future plans for Lemma. If you have more questions you'd like to see answered in the next update, sound off in the comments!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #144 on: March 27, 2014, 08:03:16 PM »

An update from the Kickstarter:

I know it's only been 24 hours since the last update, but Lemma is now over 62% of the way to the top 100 games on Greenlight with well over 4,500 yes votes. Thank you all for being a part of this project!

I realized that the 30 seconds of gameplay from the Kickstarter trailer is not enough to really see what's going on, so here's a more in-depth video explanation of the movement in Lemma. Skip to 2:15 to see an explanation of the magical wall-creating, environment-modifying bits.



Thanks again for making this all possible. Let's keep it going!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #145 on: March 30, 2014, 08:48:31 PM »

An update from the Kickstarter:

One concern that pops up a lot on Greenlight is the low quality of the player model and animations in Lemma. The reason it's so bad is that I did all of it myself, and I'm not a character artist. People ask, "but couldn't you just try harder? What's so hard about modeling and animating a character anyway? Also, couldn't you just borrow an existing public domain model?"

Come, join me as I weave a wondrous tale of artistic achievement. It is the story of the current Lemma player model:


Weeee!

The story starts with modeling. The current player model consists of over 10,000 3D points connected by over 20,000 edges. Being a novice Blender user, I wasn't about to attempt all that myself.



Luckily, there's a great open-source project called MakeHuman that can generate all kinds of human models. You can tweak parameters like gender, height, weight, nationality, muscularity, facial features, and more.

I generated a suitable model, imported it into Blender, and made a few tweaks to fit the game's needs.

The next step was texturing. Normally I would have to painstakingly map each 3D point on the model to a 2D point on a texture surface (a process called "UV unwrapping"). Luckily, the model came with pre-generated UV coordinates, so only a few minor modifications were necessary.

However, the default textures didn't include clothes, so I used GIMP to overlay some cloth textures. I also baked in some ambient occlusion for a bit of added realism.


There's more than one way to skin a character model.

The next step is to add controls so that I can animate the character. Similar story here. Normally I would have to first create a skeleton of bones that roughly matches the shape of the model, then painstakingly assign up to four numbers to each of the 10,000 vertices in the model. These "weights" determine how much each vertex is affected by each bone. Thankfully, MakeHuman once again did the heavy lifting. However, the few modeling tweaks I made earlier had to be properly weighted, and even that was not easy for a novice like me.


The green vertices will be affected by the forearm bone.

Finally, we're ready to animate this monstrosity! Over the course of development I've accumulated 34 poses and animations.



The animation code can blend between animations and even layer two different animations on top of each other. For example, the bottom half of the model can play a walking animation while the top half answers the phone.

Each animation contains keyframes that indicate the position, orientation, and scale of each bone. To make the player turn around, I could make a keyframe at 0 seconds with the model facing forward, and another keyframe at 1 seconds with the model completely turned around. The code would blend the two keyframes into a smooth turning animation. Easy enough, right?

Not so much. Here's just part of the "kick" animation, which lasts about half a second. Each dot is a keyframe.


It's like Excel's nasty older brother.

Once you take into account the fact that the skeleton has 70 bones, even simple animations can take hours to complete.

Long story short, 3D animation is hard! Professional outfits these days use motion capture, but even that requires weeks of intensive post-processing and cleanup by teams of professional animators.

Hopefully this little article gave you a glimpse into the world of game development, and hopefully you understand why I need help to bring the player model to the level of professionalism and quality that this game deserves.

Before I go, just a quick thank you to everyone for supporting Lemma, and a status update! The Kickstarter is over 35% funded and the Greenlight is now 73% of the way to the top 100 games with almost 5,500 yes votes. Thank you guys!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #146 on: April 02, 2014, 06:08:45 AM »

From the Kickstarter: Just an update on development progress for Lemma! Thank you so much everyone for your support. I'm still getting tons of useful feedback from people playing the demo. Levels have been tweaked, bugs have been fixed, writing has been edited, and graphics have been tightened. Expect a new build very soon! Here's some new features to look forward to:

First, a minor technical detail. Saved games do not carry over between builds. If you run a newer build, all your old saves will be lost. It's a major drag for beta testers, which is why I've added a new CHEAT menu to skip parts you've already mastered!



If you played the demo, you probably had a startling meeting pretty early on with what I am calling "the evil cubes" (they usually cause a reaction like this). Unfortunately in the original release, you only encountered them in the first level as part of a scripted sequence. They weren't actually functional agents in the game.

UNTIL NOW.



 For now these guys will be tucked into a secret area in the next build. If you do find them... good luck. Side note: see how the rain drops actually respond to the lighting? I thought that was a neat touch. Smiley

Lots of things have been tweaked that are more boring and difficult to show off, including the movement code and animations. One thing I can show you is a sneak preview of some upcoming level design:



In other Kickstarter news, you should check out this intriguing post-apocalyptic interactive novel called The Seed. The gameplay concept and artwork look amazing!

That's it for now, but keep your eyes peeled for a new build soon! In the mean time, thanks for your support and let's keep it up!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #147 on: April 03, 2014, 08:12:23 PM »

It's not every day you see this email in your inbox.



WE ARE ON STEAM! Thanks everyone for your votes! We were part of a batch of 75 titles, even though we hadn't reached the top 100 yet. Go check out the other games that were greenlit today!

Here are the statistics for anyone interested:



My theory is that the traffic dropped off a cliff at the end because we were already approved and got removed from the rotation. I have no evidence to back it up though.

What else is new? Oh not much, just the brand new build 353 with more features, bug fixes, and level design tweaks than you can shake a stick at. If you didn't have time to try the original demo, now's a great time to give it a go! Here's a very incomplete list of improvements:

  • Smoother movement. The kick and roll are much more forgiving now. Frustrated that you couldn't reach that ledge? Fixed that too.
  • Fixed several long-standing bugs, including the infamous "my camera is locked and I can stare down my own neck" bug.
  • A big chunk of the notes and text messages have been re-written.
  • Experimental "expander" material previously seen here.
  • Performance improvements! Yes!
  • Cheat menu. You can now skip through the demo if you've played parts of it before.
  • EVIL CUBES.
  • Just so many level design changes. Every single level underwent surgery, plus there are entire new sections, like this one:



Spoiler alert: it's Dagobah swamp.

Thanks again for voting on Steam, and stay tuned for more updates!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #148 on: April 07, 2014, 05:04:59 AM »

We got some wonderful coverage today from Strategy Informer! A nice well-written article with lots of info about the game. Ignideus also posted a

yesterday with nice editing and insightful commentary.

The big news is that Michael from Primescribe stepped up and offered the services of his team for free to translate Lemma into Russian! It's clear to me that the translation is badly needed, because Russia is our second largest source of traffic on Greenlight. So thank you to Michael and the rest of the team! I'll be spending some time in the coming weeks implementing localization, which hopefully can be used to bring in more translations later on.

That's it for now. Thank you to everyone who tried out the latest Build 353, lots of great feedback flowing in. Stay tuned for more updates!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #149 on: April 12, 2014, 07:26:40 AM »

We are now in the midst of the final week of Kickstarter funding! With the campaign nearing the end, I thought I would give you another development update.

First, I spent a few days completely rewriting every bit of text in the game to support multiple languages. You can now change the language from this nifty selector on the main menu, and the whole game instantly switches:



Now all we have to do is translate ALL the things!

Next: I've been thinking hard about the phone mechanic, which is one of my favorite features in Lemma. I'm not aware of another game that does something similar. However, the execution leaves something to be desired. The phone conversations can not be skipped, and they can pop up right in the middle of your parkour flow, which gets old fast.

I've decided to add a new twist to the phone: signal towers. You will not be able to send or receive text messages unless you are near a signal tower, which means you could technically skip every phone conversation just by avoiding them.

Here's a look at one of the signal towers, suitably abstracted to fit within the aesthetic of the world:



This also opens up new writing possibilities for me, because now the player can actually initiate the conversation instead of only responding. Making the conversations skippable also improves the experience for speedrunners, which is good for a parkour game!

More features are in the pipeline as well. I collected some reference images and did a rough sketch of the player for a character artist to get an idea of what she looks like.



As I've said before, redesigning the player character and animations is the primary purpose of this Kickstarter. So hopefully an artist will be able to take my very rough ideas and turn them into an awesome model.

Lastly, some good news for audiophiles! AudioKinetic, the company that makes the industry-standard Wwise audio engine, recently announced that their product is free to use for projects with under 200 assets, which fits Lemma nicely. This engine should dramatically improve the audio quality in Lemma. Switching to Wwise is also a necessary step for a possible Mac and Linux port. Here's a screenshot of the Wwise content editor in action:



So that's what I've been working on. Now you're up to date! Thanks again for all your great support. Let's keep this going and get it funded in the last week!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #150 on: April 16, 2014, 05:41:04 AM »

From the Kickstarter: Here we are folks, counting down the last remaining Kickstarter hours!

I'm happy to announce that regardless of the Kickstarter outcome, production of Lemma will continue.

To be honest, I originally planned to cancel everything if the campaign failed. I figured a failed Kickstarter would be a sign that people aren't interested, and that I should cut my losses (nearly 4 years of work) and move on. But in the past month I realized a few things:

  • I was kind of shocked at first to find out that people love the game. I'm continually surprised and delighted that people can look past all the flaws and garner an enjoyable experience out of something I've created.
  • I overestimated the amount of work ahead of me. I thought people would blow through the demo in no time and complain about how short it was. The reality is, not a single Let's Player has finished the demo in one video without a lot of editing. Some of that is due to frustrations with level design and controls, but a lot of it is just that people like to explore the world and figure things out for themselves, which is amazing. Armed with that knowledge, I'm much more confident that I can create the experience I want in a reasonable amount of time.
  • Running a successful Kickstarter takes a lot more than just a great vision with a solid prototype. I failed big-time in the PR department, partly due to lack of experience, and partly because I'm just bad at it. I make games, I don't sell them.
  • With that in mind, I realize now that if a Kickstarter fails, it doesn't necessarily mean the idea is not worth pursuing. Many failed campaigns later re-launch and go on to exceed their goals. (I won't be doing that because I don't want to take any more time away from development.)

Knowing all that, I'm confident that I can find the necessary resources to make this game happen even if we don't reach our Kickstarter goal. It may take more time and money on my part, but it will happen!

In fact, it's happening right now. I better get back to coding!
Logged

Christian
Level 10
*****



View Profile WWW
« Reply #151 on: April 17, 2014, 04:24:48 AM »

Unfortunate to see that this won't get funded. But it's great to see that you're motivated to keep working on the game. If anything you can always go the Early Access route since Lemma is Greenlit
Logged

Visit Indie Game Enthusiast or follow me @IG_Enthusiast to learn about the best new and upcoming indie games!
etodd
Level 3
***



View Profile WWW
« Reply #152 on: April 19, 2014, 05:36:09 AM »

With the Kickstarter finished, it’s back to our regularly scheduled programming!

I am in the middle of a major graphics engine upgrade. This whole time I’ve been using fake HDR. Basically I divide every color by 2 when storing it in a texture, then multiply it by 2 whenever I read it from the texture. It works but you end up with lower color fidelity.

Now everything is done in full 64-bit floating point textures. Here’s an exaggerated before/after shot so you can see the difference. Notice the color banding on the left.



I was also skipping a few major steps of the usual recipe for bloom, namely downsampling and later resampling with a linear filter. The new bloom effect is much prettier. Here it is in action, along with some crazy geometry bugs I encountered while optimizing the vertex buffer code:



Lastly, I’m experimenting with a new effect for the slow-motion predictive block system:



That’s it for this week. Thanks for reading!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #153 on: April 26, 2014, 10:35:04 AM »

This week was a ton of performance optimizations and graphics upgrades.

Cascading shadow maps! Basically that means all the shadows are much sharper. It was surprisingly easy to implement and barely impacts performance.

Here's a screenshot showing off the new shadows, plus a new character modeling experiment. Just testing things out for now. What do you think?



Turns out, Blender has something called Rigify that can automatically generate an absolutely kick butt IK rig for your character, complete with blend weights for skinning. It's not perfect, especially when there are separate disconnected pieces (eyeballs, for example), but the few problem areas are easy to correct manually. Here's the character animated with the default calculated weights. I haven't touched them at all yet:



That animation is a grand total of three keyframes. I just have to move one IK control, and the rest of the body responds naturally. The rig I have now is entirely FK, meaning to get the animation above I would have had to manually rotate the joints of the legs and arms to get the hands and feet to stay planted. This is one reason the placeholder animations are so terrible. Just having an IK rig means animations will be instantly better.

Again, this is all very experimental but I think it could save a ton of time. Rigging and animation both seem like much easier problems to tackle now. If I continue with this idea I'll definitely post an article about the whole Rigify process, because there is a huge lack of documentation on the subject.

What else is new? Oh, one of my players built this insane structure using the wallrun mechanic... it was slightly exploitable. I went ahead and patched that.



More info about the performance optimizations that happened this week:

My deferred renderer now uses material IDs rather than storing specular properties for every pixel. Now I can cut the G-buffer down to 96 bits spread across three render targets:

Render Target 1

Albedo – RGB, 8 bits per channel

Material ID – 8 bit index

Render Target 2

Normal X and Y – 8 bits per channel

Motion blur velocity X and Y – 8 bits per channel

Render Target 3

Depth – 16 bit float

Normal Z – 16 bit float

Nice things about this setup:

  • I can store normals in world space, which is fast, easy, and artifact-free.
  • Storing all three dimensions of the normal (as opposed to storing only two and reconstructing the third) is nice because I can encode an extra scalar by multiplying the normal by it. The lighting system can recover that scalar later on by taking the length of the normal. Right now I just use zero-length normals for rain drops, which accept lighting from any direction rather than doing any kind of Lambert shading.
  • Lighting and objects with alpha transparency go into 64-bit floating point buffers later on, so we still get full HDR.
  • I can come up with a bunch of different material properties that I can bind to material IDs without adding bits to the G-buffer. Right now I only have two: specular exponent and intensity.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #154 on: May 02, 2014, 08:12:26 PM »

This week I finally implemented SSAO! It's pretty basic, but it works.



Check out the effect source code here.

It's a big deal for me because I tried it once before and it came out like this:



I'm also still working on the player model. I think it's close to being in a usable state. What do you think? Is that a ponytail, or a brain slug?



Like I mentioned last week, I'm using Rigify to rig the mesh. I wrote a little Blender operator that bakes all the IK animations into a format I can use. If there's interest I’ll post an article soon about the whole process, because Rigify is surprisingly hard to find information about online.

Lots of other stuff is happening too, it's just not very screenshotable. For example, I finally figured out a way to prevent people from infinitely spamming the wall-jump straight up a corner, and I did it without nerfing legitimate wall-jumps at all. Great success!

That's it for this week. Thanks for reading.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #155 on: May 10, 2014, 08:15:18 AM »

I did a lot more work on the player character. I spent a ton of time in GIMP working on the texture map. I didn't skimp on memory space, it's a full 4096×4096. The GIMP file is over 150MB.

I also split the model into three distinct materials: a shiny one for the chest, neck, and pants, a less shiny one for the hands, and a completely dull one for the hoodie. I stored the mappings for these materials in the texture's alpha channel.

Finally I cut the triangle count from almost 60,000 down to about 26,000 without noticeably decreasing the visual quality. I did this by removing an extraneous subsurf layer from the hands and baking the high-res data into the normal map. Here's the final result:



(Ignore the shadow hole near the shoes… it's a geometry issue)

I also did a ton of work on the animation system. I was using linear matrix interpolation, which can result in a lot of weird squashing when blending between animations:



Now I decompose each bone matrix into its scale, rotation, and translation components and blend them individually. The result is much more natural:



I also now use quadratic easing to blend between animations. Before, the model would move to the target pose at a constant speed and then instantly stop, like this:



Now the model accelerates and decelerates much more naturally:



Finally, I implemented a nifty technique to improve the shadows even more. Normally you bias your shadow map samples by a constant amount, or perhaps you scale it by the "depth slope", so that more problematic triangles facing perpendicular to the camera get more bias.

Shadow map bias is a necessary evil because it causes Peter Pan artifacts, where the shadow becomes detached from the shadow caster:



I was researching all this when I stumbled on normal offset shadows. It's simple: offset your shadow map sample in the direction of the normal. It works beautifully:



It also has the added benefit of simulating a bit of depth in your texture if you use a normal map.
Logged

pottering
Guest
« Reply #156 on: May 10, 2014, 01:20:59 PM »

Don't know how I missed this game (I lurk here for almost a year I think), but it looks amazing!


(btw, I really think this forum's Feedback section should have some kinda thumbnail for the threads)
Logged
etodd
Level 3
***



View Profile WWW
« Reply #157 on: May 16, 2014, 08:11:15 PM »

This week I started re-writing all the dialogue. However I quickly got sick of writing everything in code and ended up building a whole new dialogue system! Check out the new editor:



More info here, if you're into that sort of thing.

I did a ton of other stuff, but most of it isn't quite ready so it will have to wait until next week.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #158 on: May 23, 2014, 08:52:43 AM »

Big update this week!

First, I updated the logo. I rotated the cubes 45 degrees to try and convey a better sense of speed and movement. What do you think?



Next, I added support for 4K screenshots. Now I can hit Alt-S and my renderer resizes all of its buffers to 4096×2304 (biggest 16:9 resolution supported by XNA), renders the scene, saves it to a PNG, then resizes everything back to normal.

Here’s a 4K screenshot for you, showing off another nifty new feature: god rays!



Lastly, I’m happy to announce that geel9 (of scrap.tf fame) joined the Lemma team this week and already contributed some new code in the form of Steam integration:



And an awesome in-game console:

Logged

SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #159 on: May 26, 2014, 06:18:57 AM »

The cube rotation in the logo's cool, but I think slightly more or less might give a better feeling of "tilting" and movement. Maybe 22.5 or 67.5?

Nice ray effect, and cool menu. Adding a console seems like a cool thing to add, too. Nice work all around!

Oh, and I messed about with your dialogue tree creation tool - it's pretty fun and easy to use!
Logged

Pages: 1 ... 6 7 [8] 9 10 11
Print
Jump to:  

Theme orange-lt created by panic