21
Dec '12

Bad news first: There aren’t any bad news. We never have bad news. Remember when we had bad news? You don’t.
Good news: Thanks to winter holidays, we’ll have a lot of time and will be able to work on Mari0 SE and updates to this blog!

We’re planning to have Not Pacman, that game that’s been on the list on the left for forever, ready for release in the next few days, so that’s something to look forward to.

Besides that, there will be a drastically increased amount of posts on this blog! Hooray!

27
Nov '12

When I released Mari0, a lot of people have suggested adding enemies from SMB2J (the japanese sequel to SMB) or SMB3. And for that reason I’m trying to add enough enemy behavior components to allow at least most of them to be recreated easily with the enemy customization.

So let’s go and add fireball spitting Piranha plants to our mappack.
Roar I'm a plant.

The basic behavior of the fire Piranha is the same as the normal Piranha, so we can just use its base and then change some of the attributes:

base=plant
{

}

This basically creates a 1:1 copy of the existing plant enemy.
You can find the attributes of the plant enemy over here. Notice how it says ‘“quadcount”: 2’, which tells the game that the included graphic is composed of 2 different sprites, an open- and a closed mouth one for the Piranha. Each enemy can have one png image with the same name as the json settings file which is used for all the graphics.

We could override the graphic of our plant with a fancier looking SMB3-alike one, but I’m lazy so let’s just keep the graphic the same by not supplying a “fireplant.png”. Instead, let’s see what we do have to change.

{
	"pistonextendtime": 4,

	"spawnsenemy": "fireplantfire",
	"spawnenemydelays": [2, 1],
	"spawnenemytowardsplayer": true,
	"spawnenemyspeed": 5,
	"spawnonlyonextended": true
}

First, we make the plant stay outside the pipe a little longer so it can fire off a few shots before disappearing again. Then, we set up the “spawnsenemy” parameter with another enemy we’re going to make shortly. The delay is a table of values from which a random one is picked for each shot, something I’ve discovered is the easiest to modify.

For the initial speed of the spawned enemy, we have the option of a set or random value for both X and Y, or make it fire towards the player with a preset speed, something we use here. Also we have an option to make piston-based enemies only spawn enemies while extended, something I totally didn’t add only for this blogpost.

So if we run that, we see that everything runs fine! Just kidding, it crashes because it tries to create an enemy that doesn’t exist. So let’s add that fireplantfire enemy.

Fire up the fire
The above graphic is the four frames used for Mario’s fireball, and we’re just going to use that for the Piranha fire because I’m lazy. You can find the whole fireplantfire.json here, but this is the important stuff:

{
	"quadcount": 4,
	
	"animationtype": "frames",
	"animationspeed": 0.1,
	"animationstart": 1,
	"animationframes": 4,

	"movement": "none",
	"kills": true,
	
	"width": 0.5,
	"height": 0.5,
	
	"gravity": 0,
}

We’re telling the game that this enemy’s graphic (fireplantfire.png) has 4 frames and that they should be cycled through with 0.1 seconds for each frame. The fireball itself has no movement pattern so it will just keep moving where it was sent to. It kills on contact (there’s also separate attributes for “killsonsides”, “killsontop” and “killsonbottom”) and it’s half a block (8 pixels) big. Lastly, it has no gravity so it doesn’t fall down.

files. 5 of them.

So now that we have everything that we need, let’s try it out!

matrix style

Everything’s working as expected. To make the Piranha plant face Mario in case we had replaced its graphic, we’d have to set “facesplayer” to true.

I hope this gives some insight into the enemy creation for mappack authors and will be enough to satisfy all the creative minds out there.

25
Nov '12

Why not? So now you can put any enemy in a coinblock to have it appear as soon as Mario hits it. Yes, hammers are enemies. Mushrooms and co will probably use the same enemy customization so I guess they’re enemies too?
pow

21
Nov '12

Ever since Mari0 was released, people have been requesting the ability to run the game in fullscreen mode. I’ve always been against this since Mari0 uses a 400x224 base resolution which can’t be easily scaled for any resolution.

The solution is either: Change the base resolution by showing more/less blocks on the screen at the same time, something I can’t do because it would change gameplay, or scale the game with unrounded factors, but I really don’t like scaled pixel art.

I caved in though and added both letterbox and streched fullscreen to SE. You can chose any scaling factor that fits on your screen and going any further will make it go fullscreen. I put up a quick comparison between letterbox, which preserves the aspect ratio, and stretch, which fills up the whole screen, below.
fullscreen

15
Nov '12

I was writing a blogpost about how customizability is always a problem because of the format that I let users specify attributes in (loading lua is too dangerous because people like to download these mods, and text parsers are annoying to write), but then I thought “Why don’t I just use JSON?” and then I just used JSON and it works perfectly. Or I’ll use sandboxing lua.

Have a silly gif!
silly gif here

09
Nov '12

As part of the huge customization we add for mappack authors, we are also adding custom enemies to the bunch.

You’ll be able to create enemies with custom graphics and behavior by including sprites and then setting a bunch of properties for your enemy. So basically you can tell the game your enemy is “stompable”, but “killsonsides”, then give it the standard movement property (“truffleshuffle”) and you got a goomba.

I was messing around and made goombas throw goombas like hammerbros.

aaaah

The following properties were used for this:

spawnsenemy = "goomba",
spawnenemydelays = {0.2, 0.1, 1},
spawnenemyspeedx = -15,
spawnenemyspeedy = -20,

So yeah, we’re pretty excited about this as it opens up a lot of possibilities for map creators.

30
Oct '12

Further experimentation and we have some fancy following of Mario, which makes the whole portal see-through thing a little more bearable.

woop

I also tried tinting the previews in the portal colors, what do you think?

woop woop

29
Oct '12

Yesterday I implemented something that many other 2D games involving portals have, see-through portals!

woop

09
Oct '12

Hey everyone, there will be an update about the online functionality of Mari0 SE soon, but in the meantime we have a new game for you.

This is a game where you use your arrow keys to cast a number of different spells to help you progress through the levels. It was made as a single effort in a total of 27 hours for the 2-day MyLittleGameJam.

You can find this and the other submissions over here!

03
Oct '12

02
Oct '12

wiggle wiggle wiggle, yeah

30
Sep '12

Hey everyone! It’s been a month so it’s time for a short update.
Online multiplayer is nearly done, lots of great new features were added to Mari0: Special Edition and a release isn’t too far away now. Meanwhile, you can take a look at something that will also be in Mari0 SE.

30
Aug '12

Ever wanted to play a game where you shoot lasers out of your eyes to destroy someone’s avatar, fly into space blowing up asteroids, bail out of an exploding rocket, put on sunglasses, and fall back down to the ground without a parachute, killing several birds on the way? Well, then this is the absolutely perfect game for you.
It’s Trosh: The Movie: The Game, a game made for a friend in 20 hours. It’s got explosions, flashy images and inside jokes - everything a game needs to be the next XBLA hit. Download it here.

25
Aug '12

Three months ago, us making an appearance at the largest games convention in the world was a thought we considered a mere fantasy, a mad man’s wish that would never come true. One week ago, we made an appearance at the largest games convention in the world.

And absolutely everything went without a hitch.

Thanks!

Of course, none of it would be possible without our benefactors. René Meyer from Die Schreibfabrik generously provided us needed space and tickets, Tehniški Šolski Center Kranj lent us the computers and monitors we needed and our donators paid for everything else - the banner, shirts, and other small things we used. Thanks to them, we managed to pull everything off while retaining enough funds to keep everything running. Thank you.

Impressions!

So, Gamescom! It took a lot of preparations, but the effort paid off with an extremely small amount of problems which were addressed almost immediately. In addition to that, we had a few visits from people we knew from the interwebs and people with business cards. But don’t let that last fact scare you, we aren’t turning evil just yet.

Pictures!

You’re probably getting tired of words, so it’s time for some pictures! Everyone loves pictures. Good thing we have a few. Some unrelated, some blurry, all informative.

Numbers! EVERYONE LOVES NUMBERS

Something that we didn’t mention before is that every single game was tracking various game related statistics, and we got some interesting numbers.
In Mari0 4-player, players have travelled 3,125,262 blocks, which (when taking into account block size on the screen) translates to 121 km. Yes, kilometers.
In Not Pacman, 308,899 pellets were eaten and the screen did 21,715 full rotations.
In Not Tetris, a total of 5,166 lines were cleared in 1,079 games, and there were only three tetrises.
In Mari0 portal mappack there were 29,662 portals shot, of which 17,664 was blue portals.
For more raw data, check out this forum thread!

Wait a minute, what about release dates?

Well, as you might imagine, we’re back to being horribly busy again (also one of the reasons for almost a week delay on this post), so that’ll slow things down a bit. While we’re a bit anxious about releasing Not Pacman since the steering wheel is the only control method that really works, it’ll be released before Mari0 SE. Which is getting closer, but no promises on a date.


What a week. Hopefully we’ll be able to repeat it next year - it was an amazing experience.

19
Aug '12

Lots of people!