Nico, that was one heck of a sales pitch...

Here we go. I'm learning Luxe. My goal this week is to port Catabalt into Luxe and have it running on HTML5 by the end of the week. Luxe is proving to have a really step learning curve because of the near complete lack of documentation, but its alpha and this is to be expected.

My initial impressions are mixed. I have mixed feelings about initializing objects through typedefs instead of constructors. I can see it being fast and nice, but until you learn all the options that you have it is slow and really easy to mess up. The only place I was able to find what options I could actually use are buried deep in the source code.

I'll admit that I almost gave up on this whole endeavor multiple times today, but I'm pressing on. The real reason that I'm pressing on? So I can use shaders.

Nico, I'm willing to give this a shot because I see where the benefits might be once it is actually ready. I think I'm willing to put time into learning it and maybe even contributing to the project if you can give me some quick, high level overviews about some things. So if you've got time for a couple questions:

  1. What is the design goals for scenes and states? I think a state is just a way of organizing code into convenient blocks but it doesn't actually affect what is loaded on the screen. The Scene is essentially a state for graphical elements. Is this correct, or am I way off base?
  2. Can you give me a quick overview of how collisions work? I see that I can make a bunch of checks with the functions in luxe.collisions.Collision but I haven't stumbled across how to create them. Do I attach them to a sprite? I'm assuming not in case I want to follow MCV practices. Do you normally tie the shapes to sprites, or move around the sprites to match up with shapes?
I'm not looking for you to fully document everything here for me. Just a quick, high level overview would save me a ton of time reading through code and trying to piece all this information together myself.
Nico9 years ago

just in case you need the link, when I refer to the gitter I mean: https://gitter.im/snowkit/public

Nico9 years ago

Couple notes first, with the typedefs, think more about how clean it makes your source currently, as soon there will be completion for them and getting used to them and using them will have been worth it (I mean it, its already in Atom, waiting on an update for sublime, you can always get involved with these things if you're capable).

1) I haven't used either of these much, scenes not at all, as for states I've only used them as FSMs for quick AI stuff, but for both of these, you should really ask around on the gitter if you haven't already done so, think sven (the creator) has been busy lately, but he's usually around all day helping and answering questions like this, and I'm sure many others can help if you pose a clear question(:

2) its fairly simple, depending what you want, for detection, you simply create a shape with Polygon.(shape) and then update its position when/if you need to, and use the Collision class to test stuff


again, best place for general stuff is the gitter, I'm often wrong and then sven can jump in and clear up my misconceptions;)

More submissions by Bobbo for Make games.

I did a ton of art the past couple days for my Ludum Dare entry, called Release the Monster. You play as a monster that was summoned by the nefarious Dr Destructo to investigate his minions and find the incompetent ones and destroy them! It was made in Adventure Game Studio and plays like the old Lucas Arts games (complete with 320x200 graphics!)

If you are interested in playing you can check it out here.

This is what happens to minions that you discover are responsible for the failure of the master's plan.

I started my Ludum Dare 33 competition entry with the theme of "You Are the Monster".

The evil Dr Destructo's nefarious plan has just been defeated by the forces of good and he is in a foul temper. He is sure that his plan was sound and the reason he lost was due to incompetence by his minions. He has summoned his loyal monster to use its powers of mind reading to discover who is responsible for the defeat and deal out horrible retribution!

Seriously though, if you wanted to help me out, I need some ideas for funny reasons that this unspecified plans could fail. Things like "Minion was drunk", "The meal before the attack, the minion cook used spoiled food to make dinner, so everyone was sick" and "minion forgot to put bullets in his gun" are what I'm looking for.

This is a game my brother and I have been working on forever. I redid a bunch of the graphics (instead of making actual progress...)

Run cycle


EDIT - Apparently the stupid internet connection in this hotel still isn't going to let me upload anything... You'll have to imagine it...

EDIT 2 - Apparently fourth time is a charm!

I'm sure everyone is as tired of seeing them as I am of making them...

The main tiles still need to be redone. I'll get there eventually.

Now the orc can run around without a sword or shield. Or just a sword. Since you will have to find them in the game. This should have been a simple process if I'd thought about it and made the sword and shield on their own individual layers so I could have just hidden them. But of course I didn't.

I was going to animate them, but its too late and I'm tired, so you'll have to imagine it.

Started a new Tileset that I don't like. Too boring. I think for this one I'll have to write my own autotiler and randomize tiles break up the uniformity.

Created an underground Tileset. Also, make a tileable background. There will be another parallax layer between the foreground and background when I'm done, so currently it looks a little funny.

EDIT - I noticed from the GIF that there are two ugly bright pixels out of place in one of my tiles. It is fixed in the tileset, but I don't want to re-record the GIF...

The orc is coming along. I'm just kind of randomly adding different things he can do. The latest is that he can glide on his shield like Olaf from The Lost Vikings.

I think this is going to turn into a game but I'm not sure exactly what it will look like. Definitely a platformer of some sort but I'm not sure if the focus will be on action or puzzles or something in between.

I've been thinking about ways to use the crawlers that I wrote last week. Some ideas that I had were maze generation (it is out because the mazes are actually pretty lame), tile texturing (the tiles have to be really large for it to make sense), and random entity movement (not sure why this would ever be useful). Then I noticed that all of the negative space paths always touch the outside border, so if I spawned crawlers on the corners of the space I could fill in the pattern every time. So then I decided to try them with scene transitions and I really like the look. It would only work in games with a certain style and the speeds need to be adjusted because the transitions are too long now, but I'm happy with it.

Messed with my exploding sprites code to allow sprites to teleport. There is an explody teleport and a more linear one.

Also, made a pixel orc. He is the one teleporting.

So I did some quick optimization work on the exploding sprites algorithm. One of the very noticeable problems was the delay during the initial and last frame of the explosion or combination. The delay came when the PC had to write a large amount of objects to and from arrays. By introducing a random delay to the algorithm I made it so that all the pixels don't arrive at their destination at the same time so the array writes are spread out over multiple CPU cycles instead of all at once. It removed the delay at the end. I'm leaving the slight delay at the explosion because I think it is worth it to have them all go at once.

I have a couple problems to solve:

  1. What do I do if I try to assemble a sprite and there aren't enough pixels floating?
  2. How can I keep the total number of pixels down? Even with large sprites?
I'm thinking that allowing the pixles to change size might be a solution to both problems. Large sprites might break into large pixel objects and small pixles might get larger to fill in more area on larger sprites. Not sure how it will work though.

Messing around with making some exploding sprites. Sprites explode into individual pixels and can recombine to form other sprites. Right now it only works with small images because there is a LOT of calculations being done every update (each pixel gets tweened) so optimization will be key. Not sure how I want to handle this yet though.

I can do about 5000 pixels without any slowdown currently which is right around a 64x64 sprite. Needs work...

I made some changes to my crawlers. They still follow the same 6 rules as before, but I changed it so now turning and backtracking along a path no longer take up the crawlers "step", so now they all find alternate paths much faster. This was a design choice the first time, but I like it more now.

I also got rid of the hard coded step distance, so now crawlers can move any number of spaces in a step instead of just 2. I used 2 so the paths are spaced apart, but there is no reason they have to be. So now I could do a very inefficient flood fill with crawlers.

Crawlers can now change the color of the trails they leave behind.

The mouse can now spawn crawlers too. Which lets you do cool stuff.

You can play with Crawlers yourself here.

I was inspired by the cool temple wall art by MrTedders and wanted to make my own. His was done by hand, but I wanted to make something similar using the computer. I have a lot of interest in computer generated content and this case seemed like a perfect opportunity to use it.

I want to use these techniques to generate some interesting patterns for game development. Maybe not this particular pattern, but something.

I made this pattern with a bunch of what I called Crawlers. Basically a crawler is a little bug that leaves a trail behind it as it walks around and keeps track of where it has been. My crawlers follow a set of very simple rules to make their patterns:

  1. If the space in front of the crawler hasn't been covered before, move into it.
  2. If the space has been covered turn left.
  3. If the crawler has turned in a complete circle, it is stuck. It should then go back to the last space it was on.
  4. If the crawler gets all the way back to the space it started at, it dies.
There are also two special conditions that can randomly affect a crawler:
  1. There is a small chance that a crawler will randomly turn left that grows the longer the crawler has traveled in a straight line.
  2. A crawler may randomly spawn another crawler at its own location facing to the right.

Those 6 simple rules generate random patterns that look like this:

Make games.

Work on some aspect of a game, let's say 5 days a week.

daily from 2015-01-25 to 2016-01-25