games

Jemini Tutorial (Part 2 of 2)

In Part 2 of our tutorial, we’ll create some enemies for our player to fight. We’ll set up collision detection, use timers to make a pretty fading effect, and set up a custom manager to coordinate enemy movements and shooting.

Be sure to visit jemini.org for help on starting your own game!

You can view part 1 here.

Jemini Tutorial (Part 2 of 2)

development
games
ruby

Permalink

Jemini Tutorial (Part 1 of 2)

Jemini is a Ruby-based framework for game development. In this screencast, we’ll create a shooter game from scratch.

Part 1 shows creating a project, setting up a game state, loading animations, music and sound effects, and setting up keyboard input and event handlers. (Not bad for 22 minutes, right?)

You can view part 2 here.

Jemini Tutorial (Part 1 of 2)

development
games
ruby

Permalink

Life simulation ideas…

Just watched the Nature episode “Born Wild: The First Days of Life”, and got a dangerously large number of ideas for an artificial life simulation.

Here are (some of) the forces that seem to be in play:

  • Food and energy affect all aspects of birthing strategies. All these make it more likely at least some young will survive, but take energy in return:
    • Producing more than one fetus.
    • Long gestation periods.
    • Making yolk inside eggs.
    • Producing milk.
  • If you’re not top of the food chain, your babies need to be born ready to run. A longer gestational period is in order.
  • A baby can be left to fend for itself, if it’s born smart enough to find food. This means no milk production or babysitting, but probably also means longer gestation.
  • Birds let the strongest infant feed first - it’s most likely to survive. The others get the scraps and if they live too, great. Sometimes the strongest sibling kills the weaker ones. Sometimes the parents themselves do.
  • If the father stays to help, it brings extra food energy into the equation - he feeds the kids or sometimes the mother. Sometimes this means bigger litters, or in the case of emperor penguins, it simply means survival.
  • Sometimes the mother herself is the food energy - one species of spider willingly lets the babies eat her alive.
  • For males, killing the cubs of your rivals is a good way to get their harems ready to mate with you. Of course, you have to prove your genetic superiority by fighting off the father first.
  • Social animals help defend each others’ young, IF they’re from the same father. Children from other groups get attacked, though.

development
games

Permalink

Stupid damping…

physical.htm

development
games
ruby

Permalink

Linux Live Arcade?

You know, it wouldn’t be that hard to re-do the MythTV frontend system to be like XBox Live/Wii channels. Instead of shows, you’d flip through games available for download. When you found one you wanted, you could choose a menu entry to install it via the package manager.

Networking would be a little harder - you’d need a list of IP addresses for your friends/party members, which would then need to be fed to the command line for each game using that game’s options. I don’t think exiting back to the menu in the event of a connection failure could be made automatic in most cases, either, but that may not be a show-stopper.

I’m on this train of thought because I’m a little tired of dumping money into these locked-down ecosystems that I know will go away as soon as my console dies. I know I can’t attract people to play open-source games when the consoles are so much better integrated, so anything that ties a few titles together can surely help. There were some efforts in this regard a few years back, but I haven’t heard anything of them since…

development
games
linux

Permalink

i_object.png

development
games
ruby

Permalink

Logan put together a pretty impressive container for Jemini (note the rename for Google-ability) demos. Just pick from a menu to load a state. Showing a description? One line. Offering running updates on a variable’s value? One line.

class AudibleState < Gemini::BaseState

  def create_ui
    text "Click in different places in the window to emit a sound at different pitches and volumes."
    watch('Pitch') { @pitch }
    watch('Volume') { @volume }
  end

  def load

    set_manager :sound, create(:SoundManager)

    audible = create :GameObject, :Audible, :ReceivesEvents

    audible.load_sound :boom, "boom.wav"

    load_keymap :MouseKeymap

    audible.handle_event :mouse_pressed do |message|
      @pitch = message.value.pointer.x / 100.0
      @volume = message.value.pointer.y / 100.0
      audible.emit_sound :boom, @volume, @pitch
    end

  end
end

development
games
ruby

Permalink

Quick setup for Linux games under MythTV/MythGame…

These commands will install some quality games that can be played full-screen:

sudo apt-get install a7xpg
sudo apt-get install gunroar
sudo apt-get install kobodeluxe
sudo apt-get install parsec47
sudo apt-get install rrootage
sudo apt-get install sdl-ball
sudo apt-get install titanion
sudo apt-get install torus-trooper
sudo apt-get install tumiki-fighters

This command will add a “Native” games entry under the Games menu. You’ll be prompted for your MythTV DB password, which is likely stored in “/etc/mythtv/mysql.txt”.

mysql --database=mythconverg -u mythtv -p -e "INSERT INTO gameplayers (playername, gametype, commandline, rompath, extensions) VALUES ('Native', 'Other', '', '$HOME/bin/games', '');"

Then fill $HOME/bin/games “ROM directory” with scripts that launch each respective game. (These are set up for a control pad and 1024×768 resolution, so they may need tweaking.)

~/bin/games/titanion
#!/bin/sh
titanion -fullscreen -res 1024 768

~/bin/games/gunroar
#!/bin/sh
gunroar -fullscreen -res 1024 768 -enableaxis5

~/bin/games/rrootage
#!/bin/sh
rrootage -fullscreen -lowres

~/bin/games/parsec47
#!/bin/sh
parsec47 -fullscreen -lowres

~/bin/games/torus-trooper
#!/bin/sh
torus-trooper -fullscreen -res 1024 768

~/bin/games/a7xpg
#!/bin/sh
a7xpg -fullscreen -lowres

~/bin/games/sdl-ball
#!/bin/sh
sdl-ball

~/bin/games/kobo-deluxe
#!/bin/sh
kobodl -fullscreen -width 1024 -height 768 -joystick -nomusic

~/bin/games/tumiki-fighters
#!/bin/sh
tumiki-fighters -fullscreen -res 1024 768

Be sure to make the scripts executable, or they won’t launch:

chmod ugo+x ~/bin/games/*

In mythfrontend, go into game setup and scan for new games. Each script you set up should then appear under the “Native” entry in the games menu - just pick one and fire away.

Questions/suggestions? Post ‘em in the comments!

games
linux

Permalink

Have explosions that push on surrounding objects working in Life-Tank. Need to tweak that explosion duration, though…

picture-36.png

development
games

Permalink

Yet more XBox Live avatar fun…

On this page, Microsoft actually encourages linking to their cache of your avatar image. These actually update as you change your avatar, too.

So here’s a group shot of me and my friends, as we appear on Live currently, apparently with a strong wind blowing from the left…

Continue Reading »

friends
games

Permalink