Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411279 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 02:42:29 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityTownhallForum IssuesArchived subforums (read only)Tutorials2D Game in Gosu, Ruby, Test Driven Development
Pages: [1]
Print
Author Topic: 2D Game in Gosu, Ruby, Test Driven Development  (Read 3278 times)
draffauf
Level 0
**


View Profile
« on: August 11, 2015, 10:59:55 AM »

Hi Tigsource!

I've started a video series in which I'm going to write a simple 2D game in Ruby and Gosu. I'll be test driving the development with RSpec during sessions of about 30-45 minutes.

I have the project setup video available as well as the code repo (see links below). I haven't yet decided on the game design so if there's something you'd like to see please add comments here or on the videos. I'm hoping to end up with a simple 2D engine by the end of the video that can be used as a starting point for prototyping 2D projects.

Why Ruby?

Ruby is a very easy language to understand. There is also good tooling available for test driving development. It is not a highly performant language but should be plenty fast for writing simple 2D games. I see this exercise as more of a way to prototype games quickly.

Links

Part 1: Setup:


Part 2: Introducing Input:



Code repository: https://github.com/draffauf/gosu-tutorial
Youtube Channel: https://www.youtube.com/channel/UC8In_UXkaO_FU7oCDRMR8Eg
Twitter: https://twitter.com/draffauf
« Last Edit: June 01, 2016, 07:13:49 PM by draffauf » Logged
draffauf
Level 0
**


View Profile
« Reply #1 on: August 11, 2015, 11:30:12 PM »

Part 2, introducing input, is now available at

.
Logged
draffauf
Level 0
**


View Profile
« Reply #2 on: January 28, 2016, 01:00:51 PM »

It's been a long time but here is a new video in the series. There will be more videos coming soon.

Make 2D Games with Ruby and Gosu – Part 3: Render board, player; handle input


Logged
draffauf
Level 0
**


View Profile
« Reply #3 on: February 27, 2016, 11:27:58 PM »

Make 2D Games with Ruby and Gosu – Part 4: Continuous Integration and Pull Requests





In this video we'll be looking at how to add a build status badge to the project. We'll do this by using Codeship to automatically run our tests every time we push code to our repository. We'll also be looking at how to open a pull request on Github and merge changes into our master branch once our build succeeds.

All the code for this tutorial is available on my Github account. I'll be trying to keep a reasonable commit history if you wish to step through the project history.

Project Links:
Code: https://github.com/draffauf/gosu-tuto...
Gosu: https://github.com/gosu/gosu/
Ruby:https://www.ruby-lang.org/en/
RSpec: http://rspec.info/
Atom.io https://atom.io/
SFC30 (Super Famicom) controller: http://www.8bitdo.com/sfc30/
Codeship: http://codeship.com


About Me:
Twitter: http://twitter.com/draffauf
Website: http://davidraffauf.com
Github: https://github.com/draffauf
Logged
draffauf
Level 0
**


View Profile
« Reply #4 on: February 27, 2016, 11:29:54 PM »

Make 2D Games with Ruby and Gosu – Part 5: Automated Test Runs with Guard RSpec





In this video we'll look at how have our tests automatically run as we make changes to either our code under test or our specs. This is incredibly useful for speeding up the development cycle by getting instant feedback on changes. We'll also fix some problems with deprecated syntax in our tests.

In this video we'll be looking at how to add a build status badge to the project. We'll do this by using Codeship to automatically run our tests every time we push code to our repository. We'll also be looking at how to open a pull request on Github and merge changes into our master branch once our build succeeds.

All the code for this tutorial is available on my Github account. I'll be trying to keep a reasonable commit history if you wish to step through the project history.

Project Links:
Code: https://github.com/draffauf/gosu-tutorial
Gosu: https://github.com/gosu/gosu/
Logged
Fufanu
Level 0
**


View Profile
« Reply #5 on: May 08, 2016, 02:05:52 PM »

really cool, i'm a full time ruby dev will be watching this.
Logged
draffauf
Level 0
**


View Profile
« Reply #6 on: June 01, 2016, 07:04:24 PM »





In this video we'll deal with a data clump by extracting a class for Position. This is a classic code smell and refactoring to eliminate it.

All the code for this tutorial is available on my Github account. I'll be trying to keep a reasonable commit history if you wish to step through the project history.

Project Links:
Code: https://github.com/draffauf/gosu-tutorial
Gosu: https://github.com/gosu/gosu/
Logged
draffauf
Level 0
**


View Profile
« Reply #7 on: June 01, 2016, 07:07:31 PM »





In this video we'll remove inheritance where it was used prematurely and not for specialization but for code sharing. The purpose it was serving could be better handled with composition.

All the code for this tutorial is available on my Github account. I'll be trying to keep a reasonable commit history if you wish to step through the project history.

Project Links:
Code: https://github.com/draffauf/gosu-tutorial
Gosu: https://github.com/gosu/gosu/

About Me:
Twitter: http://twitter.com/draffauf
Website: http://davidraffauf.com
Github: https://github.com/draffauf
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic