Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411487 Posts in 69371 Topics- by 58427 Members - Latest Member: shelton786

April 24, 2024, 12:13:56 PM

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



View Profile WWW
« Reply #180 on: November 21, 2014, 07:13:45 PM »

“Level design for days” has been my motto for several months now, and this week is no different.

Behold, new challenge levels! These are timed, bite-sized maps with simple goals that can be completed in under a minute. They’re the kind of things you can create in the level editor and share on Steam.







I need to find a new texture for that garish green material.

Lots of other things are happening, but they’re more like a million tiny updates rather than a few conveniently screenshot-worthy ones. So that’s it for this week! Thanks for reading.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #181 on: December 05, 2014, 07:14:07 PM »

A bunch of stuff is happening this week. I finally migrated my blog away from Wordpress.com, a

finally released, and I patched my 7DFPS game grepr with Linux support. You can read more about all that here.

But you're here for Lemma. So here are the latest screens. This level is now just about done:





I also fleshed out a whole ton of writing:



So yeah, lots of stuff happening. Stay tuned.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #182 on: December 12, 2014, 12:43:45 PM »

I've come to several realizations this week.

  • Lemma is going to be good, but not great. I have to accept my limitations and finish the thing to the best of my ability.
  • Lemma is more of an experience than a traditional video game.

With these two ideas in mind, I am focusing the next few months on making Lemma the least frustrating, most enjoyable experience I can.

So I'm trying to come up with puzzles that seem difficult but are actually simple to solve. The wonderful Monument Valley did a great job of this.



Fun fact: that's actually a public domain composite image of the dark side of the moon. I wrote a custom "sky decal" shader to paste it up there while still cooperating with the distance fog.



I kind of want to live there.

So that's where I'm at. I've been stressing a lot lately but I think I can actually finish the game in April. Whether I think I can or not... I have to.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #183 on: December 19, 2014, 11:32:24 AM »

Big update this week!

My voxel renderer now has the capability to overlay everything with any texture I want. I'm using it on a new set of interconnected winter levels. This way I don't have to manually come up with a frosty version of each texture.



Without giving away too much, this week I built a new system that has implications for both puzzle solving and movement mechanics.



I also went back to several levels and fiddled with lighting again. Basically 90% of my development time is spent adjusting colors. Before / after:



Clearly, the old version relied heavily on bloom. I'm trying to avoid that a bit more now. Bloom is like crack cocaine to game developers.

Other random things:

  • When you walk off an edge, there is now a split second of forgiveness during which you can still jump. Just filing down another edge to make player movement less frustrating.
  •     I finally killed an old glitch that subconciously annoyed me for years.
        Lemma has "bullet time", and up until this week it stuttered noticeably when running in slow-motion, despite maintaining a high framerate.
        I peeked into the BEPUPhysics source code and realized it runs on a fixed timestep with an accumulator.
        It updates at 60 FPS regardless of the actual framerate. So when I changed the time scale, that 60 FPS dropped to 30 FPS.
        But no more! I now scale BEPUPhysics' target framerate as well, and the result is silky smooth slow motion.
     
  •     I liked using Jekyll for my blog so much, I also migrated the Lemma website, and updated it in the process.
        The site was already hosted on S3 so half the work was already done.
     
Logged

etodd
Level 3
***



View Profile WWW
« Reply #184 on: January 02, 2015, 08:49:08 PM »

For the first time in the history of Lemma, I'm actually keeping up with my self-assigned pace of one new level per week.

These past two weeks I made two more frost levels. The plan calls for one more frost level, then it's on to the other two biomes.

Clicky for giffy



Both of these levels have interesting quirks and unique features. They're probably too tough right now, but I'm scheduling plenty of time to playtest and sand down the sharp edges.

For me, the biggest challenge is to start with a blank slate and form new shapes out of nothing. It's much easier to playtest an existing design and think of ways to improve it. So I'm getting all the hard work out of the way first.

As I build these levels I finally get to implement story elements which have languished on the drawing board until now. I already have code for very simple cutscenes, and one of the five endings is basically done already.



I continue to solve old, long-standing gameplay annoyances.

Normally in Lemma, you can build floors by rolling or sliding off an edge, causing a blue platform to appear beneath you.



The problem is, you can spam this move and build an infinitely long blue platform. I originally prevented this with a strict rule: you can't build a platform if you're already standing on a blue surface. This rule gets the job done, but it's clunky, unintuitive, and difficult to explain to players.

I thought about another bothersome exploit that used to plague Lemma. In older versions, you could get in a corner and climb up indefinitely by jumping between the two perpendicular walls. The clunky solution was to nerf the wall-jump, which was admittedly ridiculous. But the over-powered wall-jump was fun.



So I kept the crazy wall-jump and wrote code to specifically detect the corner case (ha). I kept a running counter of spammy corner jumps. After a certain number, it disables wall-jumping in that area.

Now, the proper solution is to design a game with mechanics so elegant and simple that this whole situation never arises in the first place. But it's way too late for me to do that now, so we're stuck with this. Surprisingly, it doesn't bother people at all. Experienced gamers immediately try to exploit the wall-jump, see that it doesn't work, and move on. The rest of the game is unaffected, and I can keep my insane OP wall-jump.

Given the success of this exploit patch, I decided to do something similar to fix the issue with building floors. Now, when you try to build a floor on a blue surface, I do a breadth-first search to find solid ground. You can build on blue surfaces as long as you don't stray too far from solid ground.

Just like the wall-jump, the code is actually much more complicated now, but it boils down to this: you can always build floors unless you're trying to exploit.

And now for some random technical oddities. First, a quick tip if you're developing a game from scratch on Windows: make sure to handle DPI scaling properly. Lemma boots in fullscreen borderless window mode, and if the DPI scale setting is above 100%, Windows automatically scales the entire game window, which pushes most of it offscreen.

Here's a Gist that features an app manifest which will disable auto DPI scaling for your game.

In other news, I stumbled on the TextBelt library this week, which allows you to send SMS messages from a server for free. It's a Node project, but the concept is simple enough to easily replicate in your server framework of choice: blast emails to every single mobile provider gateway, knowing that only one provider owns the phone number and will allow the message through.

I imagine it would be fairly easy to optimize if the gateways send back email errors. At any rate, I'm tempted to take a weekend, write a fun SMS-based party game using this library, and try it out on some friends.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #185 on: January 09, 2015, 06:05:33 PM »

I moved my office into an incubator / art gallery this week.



The move is mostly for my own sanity. Turns out, working alone in your apartment for 9 months isn't the most fun in the world. It's a Herculean effort just to stay motivated. I also lost all semblance of a disciplined sleep schedule.

Productivity has been great since the move, and I'm back on a normal sleep schedule. Having people around is great, even if I mostly tune them out to focus on work (sorry guys).

In keeping with the production schedule, I finished the last frost level today. Unfortunately its massive size doesn't lend itself too well to screenshots. I tried my best:



I also completed the dialogue and cutscene for the first major player decision in the story. Sorry, no screenshots. It isn't much to brag about, but spoilers are spoilers.

Lastly, I updated the visuals for the movement prediction / block creation mechanic. Someone pointed out a while back that the old visuals made it difficult to distinguish overlapping shapes. Here's how it used to look (I always love sneering at old screenshots):



And here's the new effect with edge highlights:



I could have used a texture, but I ended up doing it in the shader based on UV coordinates:

Code:
const float radius = 0.15f;
float2 diff = float2(min(max(uv.x, radius), 1.0f - radius), min(max(uv.y, radius), 1.0f - radius)) - uv;
float highlight = 0.6f + (5.0f * (diff.x * diff.x + diff.y * diff.y) / radius);

I seem to recall reading a way to do it with only arithmetic primitives, but I couldn't remember it or figure it out.

A bunch of other stuff also happened that I won't bother listing. If you are for some reason interested in nitty gritty details, the Steam beta tester group has extensive changelogs.
« Last Edit: January 09, 2015, 06:12:19 PM by et1337 » Logged

etodd
Level 3
***



View Profile WWW
« Reply #186 on: January 16, 2015, 12:15:45 PM »

Records continue to be broken. This week's map was actually done on Wednesday!

Although most of Lemma is a strange hybrid of natural and alien-looking architecture, my design calls for a few "industrial / man-made" themed maps.
For story reasons, and also because I just want to parkour through a skyscraper.

So on Monday I asked Twitter this question:

Quote
Would people be upset if I do a few levels in the visual style of Mirror's Edge? Would that be tribute or rip-off?

Answers varied, but unfortunately I had already started working on it, and it turned out so awesome that I had to keep going. At this point I don't care if people think it's a rip-off.







Reinforcing the notion that 90% of my dev time is spent picking colors, I also revamped the skybox on Valley.



Some friends at imaekgames recommended that I get the Steam page for Lemma up as soon as possible to ensure a spot in the "Coming Soon" list, so I started crafting some assets:



Currently working with an artist to redesign the main capsule (top left), but I'm pretty happy with the other assets. Here's what the page looks like so far:



So yeah, crazy busy. This game might actually get done on time.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #187 on: January 23, 2015, 08:05:25 PM »

This week's level is not quite done yet, but I have an excuse! Power was out at the incubator for two days, and the internet didn't come up fully until just yesterday.

Still, the level should be done some time this weekend and is already looking pretty good.



I finalized the promotional graphics and published the game to Steam in "coming soon" mode. I'm incredibly grateful to Sam Gebhardt for contributing his Hollywood artistic talent!



I updated the website to feature Sam's artwork and shot a brand new trailer:





The 5 second cuts didn't turn out to be as good of an idea as I hoped, but it works for now.

Progress continues. Lord willing I will finish this game with or without power!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #188 on: January 30, 2015, 11:24:52 AM »

This week was crazy productive. I finished last week's level, finished another level, which looks like this:



...which also included some story-related writing and scripting, and actually started working on NEXT week's level, which looks like this:




I seem to be on a purple streak lately. Actually, purple may rise unintentionally to be the most prominent color in the game. Also, this last level is apparently a subconscious ode to Monument Valley.

Amidst all this I'm constantly tweaking and fixing things, which isn't particularly exciting. However, this week did bring one interesting story: a playtester reported their graphics card overheated. Apparently, the poorly designed card couldn't run at 100% utilization for any significant stretch of time.

The playtester asked for a framerate limiting feature to prevent the card overheating. So now, I cap framerate at 120 FPS, a number which is adjustable via a slider in the options menu. Details like this take up an increasingly large proportion of development time as the project nears completion.

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

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #189 on: January 30, 2015, 12:30:57 PM »

Just dropping in to say: keep it up, it looks great!
Logged

etodd
Level 3
***



View Profile WWW
« Reply #190 on: January 30, 2015, 12:55:18 PM »

Thanks man, you too! We are totally gonna hit that Kickstarter goal.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #191 on: February 06, 2015, 09:10:07 PM »

I finished last week's map. It has some spinny things.



Then I made this week's map.





Who knew purple and green could look so... not terrible?

Anyway, this puts me ahead of schedule. There are three levels remaining. My goal is to for the game to be playable from start to finish by the end of February. It's ambitious, but I'm confident I can do it!

Today I took a break from level design to do some hardcore coding for the first time in a while. It was a breath of fresh air, which definitely reinforces the realization that I'm a programmer first and foremost. I optimized a ton of stuff, cut the level data size in half, and killed a metric crap-ton of memory leaks, but I'm way too tired to write about it right now. Maybe later!
Logged

Schrompf
Level 9
****

C++ professional, game dev sparetime


View Profile WWW
« Reply #192 on: February 07, 2015, 04:53:02 AM »

I'm still in love with the surreal worlds you've created. The green/purple images look great. I'd love to explore these landscapes, climbing and running around.

Not sure if I'll actually love the game, though... tried the demo long time ago, and back then it was already way too complicated for my taste. A few pages ago I saw that I'd be required to generate walls to run on in mid-air, so I'm probably skipping on this. Still good luck, though. I'll keep an eye on it.
Logged

Snake World, multiplayer worm eats stuff and grows DevLog
etodd
Level 3
***



View Profile WWW
« Reply #193 on: February 07, 2015, 06:35:14 AM »

Thanks Schrompf. Smiley To be fair the demo had some serious usability issues that have since been cleaned up, but there's still a lot of things that need simplifying. It's tough because I've played so many thousands of hours that I don't have a solid concept of what's a good level of challenge for a new player. I think I'm just gonna take the whole month of March and dedicate it to making the game easier, lol.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #194 on: February 13, 2015, 01:58:17 PM »

Last Saturday we had the Short North gallery hop. Hundreds of people came through our gallery to see art. The guys helped me set up the Oculus and a projector on the wall.

Sometimes I had to go out and pull people in, but most of the time, there was a line. My favorite customer by far was this kid:



He jumped right in and played like a pro. The mother (recording video) was super supportive and excited.

At past expos, I dropped players into a bespoke demo level that skipped a lot of story and jumped straight into the tutorial. In December, I revamped the "real" first level (called "Rain") to be more like the demo level. If your game can't entertain people in two minutes at an expo, what's going to keep them playing if they buy the game?

After the gallery hop, I checked my Git logs. "Rain" was present in the game without a major overhaul for the past two years. I rebuilt every other level. Time to throw Rain in the trash.

For something that has received constant attention and iteration for two years, I was surprised how quickly I replaced it. Here's Rain 2.0:



It accomplishes all the same goals, teaches the same mechanics, and introduces the same (optional) story elements, but it's much more simple, streamlined, and just fun.

Rain 1.0 was the first level I ever made. At that stage I didn't entirely know what the game was. I had no level design vocabulary. I didn't even know how big the level should be or where it fit into the overall experience. I patched those details in later.

For Rain 2.0, I knew every goal from the start. I made decisions easily by asking which option best fit those goals. For once, my design tasks aligned in the correct order. As a result, I replaced two years of iteration in a single long work day.

Of course it's not perfect. Playtesting and iteration will reveal potential improvements, but it's already miles ahead of the old level. As a side note, here's a fun glitch I discovered during the redesign:



But that's not all! Oh no, that was just Monday. I built another level in the "aqua" biome, bringing the count to 18 out of 20.



One more aqua level, then the ending level, and it's a wrap. The rest of development will be tweaking, polishing, and bugfixing, which at least for me is much easier than pulling creative content out of thin air. Hang in there.
Logged

etodd
Level 3
***



View Profile WWW
« Reply #195 on: February 18, 2015, 04:03:45 PM »

This devlog is getting pretty weighed down with gifs and whatnot, so this time I'll just link to my blog.

This is an in-depth postmortem of the development process, such as it is, of Lemma's voxel engine.

The Poor Man's Voxel Engine
Logged

etodd
Level 3
***



View Profile WWW
« Reply #196 on: February 27, 2015, 06:16:56 PM »

It's the end of February and this game is supposed to be content-complete. In a sense, it actually is. All the levels are done. Twenty in all. I thought this month would never end!



Just so you know, there are sixty of those lights and I had to hook up each one individually. It fell just barely beneath the worth it to automate threshold.

Don't look too closely at this next one, it's a bit spoilery.



All that remains is to fill out a few story elements and wrap this thing up with some semblance of a satisfying ending.

I actually made some very interesting improvements to the parkour code in the past few weeks, but I'll save it for the upcoming character controller article.
Logged

sidbarnhoorn
Level 3
***


View Profile WWW
« Reply #197 on: February 28, 2015, 03:02:17 AM »

Awesome! Cool trailer! :-)
Logged

Siddhartha Barnhoorn
--------------------
Award winning composer

Composed music for the games Antichamber, Out There, The Stanley Parable, Planet Alpha...

Website:
http://www.sidbarnhoorn.com
Bandcamp:
https://siddharthabarnhoorn.bandcamp.com
Twitter:
https://twitter.com/SidBarnhoorn
etodd
Level 3
***



View Profile WWW
« Reply #198 on: March 22, 2015, 10:26:03 AM »

The game is "done". All that's left is polish and marketing.

For the first time ever, I actually used real video editing software (i.e., it cost money) to cut a trailer.

Logged

etodd
Level 3
***



View Profile WWW
« Reply #199 on: April 06, 2015, 07:17:33 AM »

I did a write-up of all the things I've learned while making the character controller for Lemma. Again in the interest of not killing your browser, I'll just link it here: The Poor Man's Character Controller
Logged

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

Theme orange-lt created by panic