Pico-8 Palette CLR for OSX

Pico-8 is an awesome fantasy console by lexaloffle. I really wanted to use the palette in other pixel art editors so I made a clr file, to be used with the standard color picker under OSX.

How To Use:

  1. Download the pico8.clr

  2. Copy the file to ~/Library/Colors/

If you open your color picker (for example in the amazing pikopixel pixel art editor) you will be able to find it in the drop down menu under the ‘Color Palettes’ tab.

Screenshot 2015-11-16 17.57.05

Have fun!

 
9 Kudos
Don't
move!

Minipixel Style – A New Indie Aesthetic

Thinking about game design and art is one of my hobbies. And I admit it: I love pixel art. And the last couple of years were a renaissance of pixel art fueled by the indie boom and games like minecraft. And right as you think you have seen it all – a new style seems to emerge: the minipixels

What?

Pixel art is often seen scaled up by 2x, 3x or more. Minipixels are different. The art usually isn’t scaled at all but still the edges are hard and no anti-alias is used. Pixelart is very small and detailed but minipixels are usually bigger pictures with bigger uniform areas since there is no upscaling involved in the postprocess. It can be made with the same tools as pixelart: the pen tool in PS/GIMP and by turning of anti-aliasing for your fills.

Examples

Relic Hunters is a free game that uses this for it’s feature art and mixes it with more ‘traditional’ pixel art:

01

http://www.relichunters.com.br/

The colors are totally different but in Orcish Inn we also see minipixels. Steven Colling, the developer of orcish inn, calls this a “grispy style”.

shot_a_typical_inn

http://orcish-inn.stevencolling.com

(Disclaimer: I work on the music for that game. But that does not change that I really like the graphics that Steven made!)

Is this is a thing now?

I don’t know if this a thing or will be. But I think it might be. It is nice to look at when used correctly and a nice fresh breeze after years of blocky pixels. Do you have more examples? Do you like this style? Do you want to see more games with this?

 
2 Kudos
Don't
move!

LD33: HOMUNCULUS

homun2

Who is the real monster? The monster or its creator?

Made for the compo in 48 hours. Almost no graphics created with a image editor. All I used were löve drawing functions.

Play it here and let me know what you think.

Features:

  • Integral Alchemy Picking
  • Transmutational Chain Fusing
  • Procedural Kinetic Grimaces
  • Aural Qualia
 
1 Kudos
Don't
move!

MUDJAM

Starting monday you can submit to MUDJAM on itch! MUDJAM accepts anything related to Multi User Dungeons, be it a tool, a small MUD experiment or anything else. Even if it is not finished you should submit – see it as a learning experience.

mudjam

MUDs might not be the most popular at the moment but is still a niche interesting for some. MUDJAM is a playground where you can test things out.

My plan for MUDJAM is to write a small, small MUD that can be played from the browser and is mostly hypertext…but we will see how far this goes.

Let me know if you enter for example here in the comments or on twitter @headchant or #MUDJAM

 
2 Kudos
Don't
move!

New Project | The resource Paradox

I am trying to do a devlog of sorts and in this first episode I want to talk a little bit about the project in general. I am working on this under the causacreations name together with Georg Hobmeier and our illustrator/artist. The project temporarily named “Minewars” is a small game about the problems of mines in india.

tumblr_inline_nkokl1PirB1sqjolw

The game is being made with the help of the MFG Baden-Württemberg. It will be a light strategy game for Web/iOS/Android and is scheduled for release in december of 2015*.

More about the game and the philosophy behind on causacreations.net

  • We are really trying but this may be subject to change!
 
0 Kudos
Don't
move!

Ludum Dare 31: Theme Ideas

Ludum Dare 31 begins tonight! I tried to come up for an idea for every Theme in the final voting round.

After the End

Point and Click Adventure: You end up in hell and you want to find out your cause of death.

Artificial Life

Multiplayer: ‘Guess who’-style game with generated faces. At first all character portraits look the same: plain and without any characteristics. Every round you can select one/a few character/s and give him a task to do in his life. This task shapes the look of the characters portrait.

Avoid the Light

You play ‘depression’ and try to kill your host during a long and dark winter night in scandinavia. Try to control the host by inserting evil thoughts into his routine. Time the thoughts right for multipliers. Make him avoid light to gain more strength.

Borders

Card Game: A deck building game where you are playing a country/state and your hand(=local economy) is partly open. Trade with other players to help your hand to synergize and grow. Winner is the player who has the largest economy when all playing cards are in hands.

Chaos

You play Mother Hulda (Frau Holle) and need to create chaos snow patterns by combining and shaking an assortment of feather pillows. Each spring your doings will be judged by a jury of snowing-conaisseurs.

Color is Everything

Tetris with different colored sub-monoids that merge?

Death is Useful

Read medical files and turn off life support for the right patients.

Deep Space

Trivia game about space and wikipedia is allowed. but there is no sound in space. (and no text)

Deja vu

Speedrun Text adventure + dance pad/guitar hero game: recognize/learn patterns in the room descriptions to traverse them faster

End Where You Started

Screenwrapped(goes out one side, comes in the other) billard game.

Entire Game on One Screen

RPG: Huge, huge fantasy overworld map and you play a tiny, tiny pixel.

Everything Falls Apart

Sing at the right tone to break different glasses thrown at you by your angry neighbour.

Generation

Metroidvania with generated levels

Isolation

Plattformer where you have to seperate the plattforms from a energy unit in order to use them.

Machines

OlliOlli-inspired: 2D-Motorcycle downhill stunts and racing

One Rule

Online-voting game(maybe using twitch?): every X minutes a new rule is introduced, can be selected from 4 four different rules. But the First rule is: The voters that voted against the winning vote are the peasants and the voters that voted for the winning vote are the lords.

Playing Both Sides

Asynchronous-Multiplayer: Turn based strategy game. Upload a game(=set of turns) to the database or play against one.

You Are Not Supposed To Be Here

Actionshooter game where you can walk only in walls.

You Can’t Stop

2D Physics game with drugs

SHMUP/Snowball Fight Simulator. Build a snowman by rolling snow. Use your rolled balls to fight off kids from the other team. Also, distract them while they build their snowman.

 
0 Kudos
Don't
move!

Performance: Tilemaps in Löve with spritebatch

A usual pattern in 2D games is the use of tilemaps. In Löve you can implement those in a variety of ways. In this article I want to compare tilemap implementations in Löve 0.9.1 using spritebatches.

I will use this to create an ascii display.

Screenshot 2014-10-30 15.01.44

Timing

I will use the following code to measure the performance. It is an extended example from kikitos time function. It uses os.clock to measure the time before the execution and again after the execution.

time.lua:

   local last

    return function(title, f, n)
        if title == "clear" then last = nil; return end
        collectgarbage()
        local n = n or 100000
        local startTime = os.clock()
        for i = 1, n do
            f()
        end
        local endTime = os.clock()
        local delta = endTime - startTime
        if not last then last = delta end
        print(title, delta, (delta) - last)
        last = delta
    end

Spritebatch

We will generate a spritebatch with a tilesheet image(aka texture atlas) and use the spritebatches add/set method to change the content. The spritebatch will have NxM size. I used Alloy_curses_12x12 from the dwarf fortress tileset repository.

   local img = love.graphics.newImage("Alloy_curses_12x12.png")
    local spritebatch = love.graphics.newSpriteBatch(img, 87*25, "stream")
    local quads = {}
    for x = 0, 255 do
        local i,j = 1+(x%16), math.floor(x/16)
        quads[x] = love.graphics.newQuad(i*12, j*12, 12, 12, img:getWidth(), img:getHeight())
    end

We can also use the bind and unbind function on the spritebatch to bind the spritebatch into memory before we loop through the whole display grid.

Luajit Tables

We need two arrays: one to store the id and one to store the ascii value of the cell. Map is our display grid and idmap will store the id returned by adding the cells.

   local map = {}
    local idmap = {}
    spritebatch:bind()
    for i=0,86 do
        map[i] = {}
        idmap[i] = {}
        for j=0,24 do
            map[i][j] = 68
            spritebatch:setColor(255,255,255)
            idmap[i][j] = spritebatch:add(quads[map[i][j]], i*12, j*12)
        end 
    end
    spritebatch:unbind()

   local random = math.random
    time("spritebatch, lua table", function()
        spritebatch:bind()
        for i=0,86 do
            for j=0,24 do
                map[i][j] = random(255)
                spritebatch:setColor(0,255,255)
                spritebatch:set(idmap[i][j], quads[map[i][j]], i*12, j*12)
            end
        end
        spritebatch:unbind()
        love.graphics.setColor(255,255,255,255)
        love.graphics.draw(spritebatch)
    end, 1000)

FFI Arrays

We use the ffi.new functions to generate a 2 Dimensional uint8_t array for the character display grid and uint16_t for the id grid.

   local ffi = require "ffi"
    local map = ffi.new("uint8_t[87][25]")
    local idmap = ffi.new("uint16_t[87][25]")

    spritebatch:bind()
    for i=0,86 do
        for j=0,24 do
            map[i][j] = 68
            spritebatch:setColor(255,255,255)
            idmap[i][j] = spritebatch:add(quads[map[i][j]], i*12, j*12)
        end 
    end
    spritebatch:unbind()

    local time = require "time"

    time("spritebatch, ffi array", function()
        local random = math.random
        spritebatch:bind()
        for i=0,86 do
            for j=0,24 do
                map[i][j] = random(255)
                spritebatch:setColor(0,255,255)
                spritebatch:set(idmap[i][j], quads[map[i][j]], i*12, j*12)
            end
        end
        spritebatch:unbind()
        love.graphics.setColor(255,255,255,255)
        love.graphics.draw(spritebatch)
    end, 1000)

Performance

Using Luajit tables is a lot faster than using FFI arrays:

spritebatch, ffi array 2.13035 0 spritebatch, lua table 0.577013 -1.553337

image (2)

FFI Arrays are a lot slower, so you should stick to tables if you want to draw tiles fast.

Slime explains: “The FFI array is probably slower because the loop it’s used in can’t be compiled by the JIT (since C API functions – all of LÖVE’s API, for example – prevent JIT compilation for the block of code they’re called in.)”

One more thing for spritebatch

It’s probably a good idea to only use spritebatch:set when something has changed. You can do this by having two map tables. Check if the map table is different than the cache table and only then set the spritebatch tile.

   spritebatch:bind()
    for i=0,86 do
        for j=0,24 do
            if map[i][j] ~= old[i][j] then
                old[i][j] = map[i][j]
                spritebatch:setColor(255,255,255)
                spritebatch:set(smap[i][j], quads[map[i][j]], i*12, j*12)
            end
        end
    end
    spritebatch:unbind()

I created an example lua file that can be used as a very simple base to render roguelike ascii games:gist. But of course this can be used for any other tile based game too.

 
26 Kudos
Don't
move!

Orcish Inn on STEAM GREENLIGHT

Orcish Inn is an orc tavern simulation game. You raise crops, brew beer, create your tavern and serve your orcish guests. My name is Steven Colling, I’m from Germany and I create this game on my own with the help of Tilmann ‘headchant’ Hars, who is responsible for sound effects and music. I enjoyed farming and business simulation games as I was a child and I want to share my passion for calm and deep, strategical experiences.

more info

I am excited to be contributing the music and sounds to this!

Links: Vote on Steam Greenlight here Article about Orcish Inn by Kotaku Support the developer on epocu or patreon Follow Steven on twitter

 
0 Kudos
Don't
move!