Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1366404 Posts in 64038 Topics- by 55925 Members - Latest Member: Leoniander

September 22, 2019, 09:25:37 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsMoonQuest (OUT NOW!)
Pages: 1 ... 173 174 [175] 176 177 ... 189
Print
Author Topic: MoonQuest (OUT NOW!)  (Read 1123738 times)
DrDerekDoctors
THE ARSEHAMMER
Level 8
******



View Profile WWW
« Reply #3480 on: February 19, 2016, 05:00:10 AM »

Dammit! All these screenshots and animated GIFs are making it WAY TOO HARD to wait for this game! BOOO! But also NOT BOOO!
Logged

Me, David Williamson and Mark Foster do an Indie Games podcast. Give it a listen. And then I'll send you an apology.
http://pigignorant.com/
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3481 on: February 20, 2016, 02:58:36 PM »

lol, hundreds of skeletons. nice. great way to test system memory.
i dont have much to say. ill just leave my post like this.

Yep love them skellingtons. Thanks for commenting, it's pretty quiet on my TIGs devlog these days. Smiley

Dammit! All these screenshots and animated GIFs are making it WAY TOO HARD to wait for this game! BOOO! But also NOT BOOO!

Ha, one day, when you're like 90 years old, you'll hear that Moonman has reached v1.0.




Logged

Will Escher
Level 0
*


View Profile
« Reply #3482 on: February 20, 2016, 10:50:23 PM »

Hey eigenbom, nice cameo in Blitz Breaker. Smiley
Logged
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3483 on: February 25, 2016, 10:51:28 PM »

Hey eigenbom, nice cameo in Blitz Breaker. Smiley

Hehe, yep Smiley

Update: Hey all, the devlogs will be going on hiatus from now, as I'll be in the U.S.A. until the start of April. The next few days I'll be wrapping up the next Alpha build, and will hopefully have that up by the end of next week.

This week has involved lots of miscellaneous things: we've added a new small town area, a new teaser volcano area (that has basically nothing except lava), added in a few more item sets (dungeon, gold, and bone), and made sure that lot's of creatures and things are available for the next alpha. One thing I won't have time for is balancing, so the next build will be looser, with just a bunch of stuff thrown in.

Here are a few of things we've been working on:

Website has been updated with new screenshot, pre-order widget, and team avatars.

I've added pop-up labels to items:



New weapons and background decorations.



Some new backgrounds and areas, like the town:



Oh and there'll be a new character available: Carl. In the final game you'll have to unlock him, but in the alpha he'll be available to play. He starts with a powerful laser gun that has a small number of charges.



And that's it. Thanks for reading and I'll catch you back in the devlogs in April!

Logged

rek
Level 7
**


View Profile
« Reply #3484 on: March 03, 2016, 08:56:45 AM »



You have to use this somewhere! It could be the Moonman equivalent of Touch Fuzzy, Get Dizzy.
Logged
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3485 on: March 03, 2016, 02:07:07 PM »

> You have to use this somewhere! It could be the Moonman equivalent of Touch Fuzzy, Get Dizzy.

Oh yeah for sure. I have a similar effect already when you wear one of the masks.

Update: The final closed alpha build is now out for Windows and OSX. If you're a tester then jump on the Alpha forum and please leave some feedback. Now I'm off to 'Merica for a few weeks!
Logged

benjkers
Level 0
***


digging for precious games


View Profile WWW
« Reply #3486 on: March 03, 2016, 06:49:15 PM »

That distortion - can't pull my eyes away. Tops. Have fun in the States!
Logged

RujiK
Level 2
**



View Profile
« Reply #3487 on: March 04, 2016, 06:12:13 AM »

TOUCH FUZZY GET DIZZZY!!!! YEAHEAYEHAYEHYAEHA

That is the most memorable mario level in existence. Also it is pretty impressive from a technological perspective since Yoshi actually leans/runs downwards against the distortion.
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3488 on: March 04, 2016, 02:41:01 PM »

it is pretty impressive from a technological perspective since Yoshi actually leans/runs downwards against the distortion.

Oh really? That sounds pretty amazing :D
Logged

Recs
Level 0
***



View Profile
« Reply #3489 on: March 16, 2016, 11:43:07 PM »

following, very interesting.
Logged
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3490 on: April 03, 2016, 02:58:36 PM »

Update: I'm back from the USA. Here's a post about my trip. GDC was amazing and it was awesome to meet so many of my TIG friends there. I got to see a talk by the Rain World crew which was super inspiring, that game is coming along really well!
Logged

KaiTheSpy
Level 0
***


how to make the game


View Profile
« Reply #3491 on: April 03, 2016, 03:21:33 PM »

How was Seattle? Did you see Pike Place Market?
Logged

i am a 14 year old loser who sort of knows how to program
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3492 on: April 03, 2016, 03:27:31 PM »

How was Seattle? Did you see Pike Place Market?

Seattle was cool. Stayed with a friend who works for Amazon AWS and it was crazy to see how big that company is ... inhabiting like 5 sky scrapers and building more. Yeah we went to Pike Place Market and I bought a banana. The EMP museum was quite interesting - I loved the little sci-fi section with props from Alien, Terminator, Fifth Element, etc. Overall Seattle was interesting but it seemed way too cold for me. Portland was super chill and I'd love to spend more time there. SF was a weird mix of ultra rich and poor, not sure I'd like to live there.
Logged

KaiTheSpy
Level 0
***


how to make the game


View Profile
« Reply #3493 on: April 03, 2016, 04:03:36 PM »

I live there and I think its too cold too
Logged

i am a 14 year old loser who sort of knows how to program
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3494 on: April 09, 2016, 05:29:20 PM »

The devlog marches on! Will I ever finish this thing?

Update: I've begun work on the AI system. My immediately goal is to have more intelligent enemies and NPCs. They'll eventually be able to pathfind around obstacles and will be smarter during combat. In addition they'll have more behaviour types; for example, a warrior with a guard behaviour would only chase the player a certain distance before returning to his post.

Here's a gif of the first steps of the new system.

If I get time I really want to implement a few idle actions to add more character to the game. Imagine watching an NPC walk over to a chest, take out a rock, and then throw the rock into a hole. It's a nonsense set of actions but it links together the different aspects of the world, which is important if you want the world to feel alive and cohesive.

Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3495 on: April 14, 2016, 08:49:22 PM »

Update: This week I've been teaching the AI how to jump.

A simplified version of the problem is this: In order to jump N units across, how much vertical and horizontal force do i need to apply?

One way to approach this is analytically, by calculating the trajectory an entity would take if he jumped with a certain force, and then using the inverse of the equation to get the force required to jump a certain distance. Depending on the complexity of your physics engine this may be possible; however, the simulation in Moonman is too complex (esp. as it uses Box2D) for me to try this.

Another approach is experimental: simulate a whole range of jumps inside your game and use that data to inform you jump calculation. This is exactly what I've done. After setting up a test harness, I simulated a mob of humans jumping with varying jump parameters (equivalent to a player's duration of jump button pressed and duration of move button pressed). From this I extracted the distance and height jumped, and plotted it below. Each blue point in the graph corresponds to a certain (jump,move) parameter.





Analysing the data I saw a few interesting things, which I've outlined on the rough diagram below. Most importantly, note that to jump 3 units across, there is a minimum vertical force we need, and a maximum height we can reach based on jump force. For a jump that spans 3 units we can have a low jump or a high jump, or somewhere in between.



I then processed this data with a Python script to get the minimum and maximum jump parameters for each jump distance. In the code below, for example, you can see that to jump 2 units horizontal with a minimum amount of force, you need to have your jump = 0.01 and move = 0.073. These values directly map to how long the AI holds down the jump button and the move left/right button.



Here's an early test of the system. Lava added for malevolent reasons. Goose-knight is ok at jumping, but not good enough, and must suffer the consequence.



This approach doesn't factor in vertical height. For example, jumping 3 units across and 1 unit up will require different parameters than jumping just 3 units across.

We could solve that problem with experimental data. But I've decided to fudge it: if an AI wants to jump N units horizontally and 1 unit vertically, I simply add a little to the jump parameter and remove a little from the move parameter. If it wants to jump 3 units vertically, I add more, and so on. This approach seems to work so far, and because you can adjust your horizontal movement mid-air there's a little lee-way with this.

Here's a (sped-up) gif of some mobs jumping around between platforms.



And oh! I've discovered a glitch in the game, which I call the splash jump. If you walk off a ledge and jump just as you hit the water, you'll jump about a block higher than normal. This is because when you're in water your jump force has a multiplier. I could remove this bug but I like it, so it stays.



But, like always, it's the malfunctioning code that is the best. This guy was really struggling with the concept of jumping.


Logged

Zorg
Level 9
****



View Profile
« Reply #3496 on: April 15, 2016, 12:55:03 AM »

Update: This week I've been teaching the AI how to jump. [...]

One way to approach this is analytically, by calculating the trajectory an entity would take if he jumped with a certain force, and then using the inverse of the equation to get the force required to jump a certain distance. Depending on the complexity of your physics engine this may be possible; however, the simulation in Moonman is too complex (esp. as it uses Box2D) for me to try this. [...]

I'm not sure if the analytical approach is that complex as you don't seem to steer mid-air:

Logged
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3497 on: April 15, 2016, 03:33:29 PM »

Update: This week I've been teaching the AI how to jump. [...]

I'm not sure if the analytical approach is that complex as you don't seem to steer mid-air..


The jumps are not pure parabolas, see the gif with the two knights. They don't move at a constant speed horizontally and their vertical accelleration isn't exactly constant either. Some variables that make the analysis complex are: jump force, jump duration, mass, move duration, move speed, a pause at top of jump, and dampening on horizontal movement.

A parabola would be a decent estimate though.
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3498 on: April 22, 2016, 08:46:10 PM »

Update:

This week I've been implementing A*-pathfinding for the AI -- this will allow enemies or NPCs to find a short path through the world to moonman or some other target.

Starting simple, here is a case where the target location is the top of those tiles, and the knight knows that he has to take a series of jumps on the left hand side. The planner knows how to move and jump and searches the entire nearby space for the quickest route to the top.



Here's a more complex case. The squares show the potential tiles the knight will move through, and each one is checked for collision. If a tile is blocked then the path-finder will find another way around (if there is one).



One interesting problem I had was to predict which tiles a human would move through as they jumped. To solve this I assumed the jump path was perfectly parabolic, which isn't exactly correct, but a good enough estimate for now. The problem then becomes: given start and end locations and jump height, what parabola goes through those points?

A page or two of algebra, and many mistakes later, I ended up with the equation. You can actually play with the equation over here on Desmos. For that equation I assumed the mob was at the origin and wanted to jump to point q, with a height h.



You can then trace out the parabola in tile-space (adding the human height along the way), and if it collides with a block then you know the jump won't be successful. In terms of A*-search, this path (between p and q via a jump) would be invalid.



You can see the behaviour of the path-finder below. As I move the target around the algorithm finds a new shortest path.



It's important to note that the path is an ideal path, and assumes a perfect ability to jump between platforms, etc. Following the path is another thing altogether (especially in a physics simulation) and the success will depend on environmental factors, the physics state of the mob, and some how precise the AI-control can time things. But for the most part a mob will be able to follow a path fairly well .. and if it fails at any point then it'll simply re-plan and try again.

Here's a video of a knight following a path. He's pretty good at jumping between all those platforms, although halfway through he fails a jump and has to re-plan the route.

And here's a gif or a knight following Moonman (crunched to a few colours because of it's size):



The implementation is super simple at the moment and there are a lot of things that the pathfinding doesn't consider yet, like doors, sloped terrain, bridges, platforms, ladders, etc. These will all be brought into the system one by one until we have some semi-intelligent mobs that can't be tricked so easily.

The path-finding and path-following components are just one piece of the AI system, but I think it'll be the trickiest to implement. One necessary optimisation I need to add, for instance, is to cache the graph for the A* system. Being tile-based, Moonman has part of a graph already (just use the tiles and their neighbours), however it doesn't account for jumping to and falling from ledges, and I'll need to find and cache that info whenever the world geometry changes.

It's interesting also to consider how A*-search would work if entities are allowed to modify the world/graph. For instance, if an enemy in Moonman could mine through a wall or build a bridge, how would that effect the pathfinding system? I assume it's a very difficult problem to do well, although some basic logic for hacking through a wall could push the game in a very interesting direction! For now though, it's in the todo-later basket.

Another interesting thing I've been thinking of is path-finding or following going wrong. Consider a "dumb' enemy. Would he make a bad plan? Would he make bad assumptions about the distance he can jump? Would he cancel a plan halfway through? When coding the system I stumbled across a bug that revealed a strange, but entertaining, behaviour. Here the knight believes the shortest path to the spaceman is to bunnyhop the entire way. See you next time!




Logged

BomberTREE
Level 9
****


sometimes I delete smileys from my old posts


View Profile WWW
« Reply #3499 on: April 23, 2016, 12:37:43 PM »

Oh wow Kiss
That's really impressive, and fun to see in practice!

Good job  Hand Thumbs Up Right
Logged

Pages: 1 ... 173 174 [175] 176 177 ... 189
Print
Jump to:  

Theme orange-lt created by panic