SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
EuRuKo presents

Javier Ramírez
 (javier@formatinternet.com)
          * in *
  Fun with Ruby
(and without r***s)

Program your own
 games with Gosu
the characters
Ruby ................. as The Damsel
Hardware ............ as The Villain
 Gosu ...................... as The Hero
 Chipmunk ........ as The Scientist
  Rubyscript2exe ........ as Himself
why games
work   rest   play   sleep




improve, have fun
why ruby

because i can!
less code, less clutter
easy to try out
why me
                             HTML
        PASCAL /
BASIC               C/C++             JAVA   RUBY
                              ASP
          DBase
LOGO                 SQL               PHP
                    VBasic JavaScript
        Assembler
Non-technical considerations
   concept
 ●


   game specs / core design
 ●


   gameplay/game mechanics
 ●


   balance
 ●


   look and feel
 ●



     More at “Game Architecture and Design: A New Edition”
     by Andrew Rollings & David Morris
Part I

what's in a game?
  (game development 101)
Web Development Abstraction
One ring to rule them all
Game Development Abstraction




  3D games are the same, just harder
Game Development Components
the living game
Development Components
    main loop / event loop
●


    game logic: levels, collisions, AI ...
●


    stateless images (tiles / models)
●


    stateful images (sprites / models)
●


    sound FX and music
●
Part II

when Ruby met Gosu
about
by Julian Raschke and Jan Lücker
Gosu ( 고수 ): High Hand - Leader
C++ + Ruby Bindings

http://code.google.com/p/gosu/
 (http://tinyurl.com/euruko-gosu)
design rationale
Bloatfree: Gosu aims to contain everything that
is necessary to write a game in clean C++ or
Ruby code, yet not much more.

Reality-driven: Everything in Gosu exists for
the same single reason: It was necessary for
an existing project. Nothing was, and will ever
be, added out of boredom.
game demo
source code

http://tinyurl.com/euruko-games

 http://code.google.com/p/eurukuest
     (http://tinyurl.com/eurukuest)
Gosu::Window
Gosu::Image

load individually or tiled
drawing can be rotated / scaled
supports z-index
can use Rmagick objects
Gosu::Sample & Gosu::Song
full playback control
  volume, speed, pause, resume,
  stop, pan

looping supported
       midi are better if converted to XM
Gosu::Font

can be a system font or a file
easy to check the real width
supports rotation and scaling
code walkthrough
about
by Scott Lembcke

A 2D rigid body physics library, designed
with 2D video games in mind.
http://code.google.com/p/chipmunk-physics
    (http://tinyurl.com/euruko-chipmunk)
about
about
chipmunk basics
Space
Body
Shape
Vect
Joint
Part III

your 15 minutes of fame
doing it is just half the fun
tar2rubyscript
by Erik Veenstra

RBA file:
init.rb => tar + base64 + comments
rubyscript2exe
by Erik Veenstra
 packages ruby, the script and all
 dependencies together into an
 executable file.

 works on windows, linux, OSx
rubyscript2exe
First Step: it runs the application,
checking for all the required
gems and scripts, creating a list
of dependencies to include in
the executable
rubyscript2exe
The “Environment Embedding Executable”
gzips all the dependencies
and attaches the file to a copy of eee
muhahahahaha!
 http://formatinternet.com
 javier@formatinternet.com
 http://twitter.com/supercoco9
 http://www.workingwithrails.com/
 person/5987-javier-ramirez

Weitere ähnliche Inhalte

Was ist angesagt?

Ig1 task 2 analysis work sheet 1
Ig1 task 2 analysis work sheet 1Ig1 task 2 analysis work sheet 1
Ig1 task 2 analysis work sheet 1
Luke Summers
 
Sound generating
Sound generatingSound generating
Sound generating
LewisB2013
 
Pre Production - video game project
Pre Production - video game projectPre Production - video game project
Pre Production - video game project
JoyLucyBuck
 
Mr monocle – pipeline pdf
Mr monocle – pipeline pdfMr monocle – pipeline pdf
Mr monocle – pipeline pdf
Will Cafferkey
 
iOS Game Development: When Cocoa Met Cocos...
iOS Game Development: When Cocoa Met Cocos...iOS Game Development: When Cocoa Met Cocos...
iOS Game Development: When Cocoa Met Cocos...
Joseph Ku
 
Podhandler 190614092742
Podhandler 190614092742Podhandler 190614092742
Podhandler 190614092742
kiandevine
 

Was ist angesagt? (19)

Adam Crittenden The Last Of Us Sound Analysis
Adam Crittenden The Last Of Us Sound AnalysisAdam Crittenden The Last Of Us Sound Analysis
Adam Crittenden The Last Of Us Sound Analysis
 
5. pre production
5. pre production5. pre production
5. pre production
 
Colin dockerty sound design in computer games analysis work sheet deadpool
Colin dockerty sound design in computer games analysis work sheet deadpoolColin dockerty sound design in computer games analysis work sheet deadpool
Colin dockerty sound design in computer games analysis work sheet deadpool
 
2. initial plans
2. initial plans2. initial plans
2. initial plans
 
Game evaluation
Game evaluationGame evaluation
Game evaluation
 
Y1 gd level_designworkflow
Y1 gd level_designworkflowY1 gd level_designworkflow
Y1 gd level_designworkflow
 
5. pre production(2)
5. pre production(2)5. pre production(2)
5. pre production(2)
 
Animation & video game production process
Animation & video game production processAnimation & video game production process
Animation & video game production process
 
Ig1 task 2 analysis work sheet 1
Ig1 task 2 analysis work sheet 1Ig1 task 2 analysis work sheet 1
Ig1 task 2 analysis work sheet 1
 
Sound generating
Sound generatingSound generating
Sound generating
 
Pre Production - video game project
Pre Production - video game projectPre Production - video game project
Pre Production - video game project
 
6. pre production
6. pre production6. pre production
6. pre production
 
Intro to Game Development and the Game Industry (She Codes TLV)
Intro to Game Development and the Game Industry (She Codes TLV)Intro to Game Development and the Game Industry (She Codes TLV)
Intro to Game Development and the Game Industry (She Codes TLV)
 
Mr monocle – pipeline pdf
Mr monocle – pipeline pdfMr monocle – pipeline pdf
Mr monocle – pipeline pdf
 
iOS Game Development: When Cocoa Met Cocos...
iOS Game Development: When Cocoa Met Cocos...iOS Game Development: When Cocoa Met Cocos...
iOS Game Development: When Cocoa Met Cocos...
 
BGA Studio: The BGA framework at a glance
BGA Studio: The BGA framework at a glanceBGA Studio: The BGA framework at a glance
BGA Studio: The BGA framework at a glance
 
Podhandler 190614092742
Podhandler 190614092742Podhandler 190614092742
Podhandler 190614092742
 
Forza 5 analysis
Forza 5 analysisForza 5 analysis
Forza 5 analysis
 
Days before the end
Days before the endDays before the end
Days before the end
 

Ähnlich wie Fun With Ruby And Gosu Javier Ramirez

Engine terminology
Engine terminologyEngine terminology
Engine terminology
thomasmcd6
 
Callum deighton engine terminology
Callum deighton engine terminologyCallum deighton engine terminology
Callum deighton engine terminology
Deightonater
 
Michael Hughes - Y1 GD ngine_terminology
Michael Hughes - Y1 GD ngine_terminologyMichael Hughes - Y1 GD ngine_terminology
Michael Hughes - Y1 GD ngine_terminology
Mike Hughes
 
Ig1 task 2 analysis work sheet portal 2
Ig1 task 2 analysis work sheet portal 2Ig1 task 2 analysis work sheet portal 2
Ig1 task 2 analysis work sheet portal 2
copelandadam
 
Y1 gd engine_terminology -MPH (Michael P. Hughes)
Y1 gd engine_terminology -MPH (Michael P. Hughes)Y1 gd engine_terminology -MPH (Michael P. Hughes)
Y1 gd engine_terminology -MPH (Michael P. Hughes)
Mike Hughes
 
Y1 gd engine_terminologyhj
Y1 gd engine_terminologyhjY1 gd engine_terminologyhj
Y1 gd engine_terminologyhj
Shaz Riches
 

Ähnlich wie Fun With Ruby And Gosu Javier Ramirez (20)

An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game development
 
Production RPG Maker.
Production RPG Maker. Production RPG Maker.
Production RPG Maker.
 
Jake hyatt Y1 gd engine_terminology
Jake hyatt Y1 gd engine_terminologyJake hyatt Y1 gd engine_terminology
Jake hyatt Y1 gd engine_terminology
 
Engine terminology
Engine terminologyEngine terminology
Engine terminology
 
Android game engine
Android game engineAndroid game engine
Android game engine
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Callum deighton engine terminology
Callum deighton engine terminologyCallum deighton engine terminology
Callum deighton engine terminology
 
10 open source / homebrew games for handhelds in 10 minutess
10 open source / homebrew games for handhelds in 10 minutess10 open source / homebrew games for handhelds in 10 minutess
10 open source / homebrew games for handhelds in 10 minutess
 
Michael Hughes - Y1 GD ngine_terminology
Michael Hughes - Y1 GD ngine_terminologyMichael Hughes - Y1 GD ngine_terminology
Michael Hughes - Y1 GD ngine_terminology
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
A-Rage AGDC (The Australian Game Developers Conference)
A-Rage AGDC (The Australian Game Developers Conference)A-Rage AGDC (The Australian Game Developers Conference)
A-Rage AGDC (The Australian Game Developers Conference)
 
Y1 gd engine_terminology
Y1 gd engine_terminology Y1 gd engine_terminology
Y1 gd engine_terminology
 
Ig1 task 2 analysis work sheet portal 2
Ig1 task 2 analysis work sheet portal 2Ig1 task 2 analysis work sheet portal 2
Ig1 task 2 analysis work sheet portal 2
 
Y1 gd engine_terminology -MPH (Michael P. Hughes)
Y1 gd engine_terminology -MPH (Michael P. Hughes)Y1 gd engine_terminology -MPH (Michael P. Hughes)
Y1 gd engine_terminology -MPH (Michael P. Hughes)
 
Engine terminology
Engine terminologyEngine terminology
Engine terminology
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & Components
 
Gamers In THE OVERALL GAME
Gamers In THE OVERALL GAME
Gamers In THE OVERALL GAME
Gamers In THE OVERALL GAME
 
Y1 gd engine_terminologyhj
Y1 gd engine_terminologyhjY1 gd engine_terminologyhj
Y1 gd engine_terminologyhj
 
Pcsx2 readme 0.9.6
Pcsx2 readme 0.9.6Pcsx2 readme 0.9.6
Pcsx2 readme 0.9.6
 

Mehr von javier ramirez

Mehr von javier ramirez (20)

¿Se puede vivir del open source? T3chfest
¿Se puede vivir del open source? T3chfest¿Se puede vivir del open source? T3chfest
¿Se puede vivir del open source? T3chfest
 
QuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series databaseQuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series database
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
 
Deduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDBDeduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDB
 
Your Database Cannot Do this (well)
Your Database Cannot Do this (well)Your Database Cannot Do this (well)
Your Database Cannot Do this (well)
 
Your Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic DatabaseYour Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic Database
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
 
QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728
 
Processing and analysing streaming data with Python. Pycon Italy 2022
Processing and analysing streaming  data with Python. Pycon Italy 2022Processing and analysing streaming  data with Python. Pycon Italy 2022
Processing and analysing streaming data with Python. Pycon Italy 2022
 
QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...
 
Servicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en AragónServicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en Aragón
 
Primeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverlessPrimeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverless
 
How AWS is reinventing the cloud
How AWS is reinventing the cloudHow AWS is reinventing the cloud
How AWS is reinventing the cloud
 
Analitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAMAnalitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAM
 
Getting started with streaming analytics
Getting started with streaming analyticsGetting started with streaming analytics
Getting started with streaming analytics
 
Getting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipelineGetting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipeline
 
Getting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep DiveGetting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep Dive
 
Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)
 
Monitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWSMonitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWS
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 

Fun With Ruby And Gosu Javier Ramirez