Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Friday, August 15, 2008

Euphoria Rocks and Musubi Rolls

Friday August 15, 2008

Greetings! It's another fine Friday and I'm back with usual mix of mirth, pith and ideas. The topic for tonight is programming and once more I've turned my attentions to the Euphoria programming language and my long-delayed Musubi/SDL project. Musubi is a project I started a while ago to simplify the use of the SDL graphics/multimedia library and the related SDL libraries with Euphoria. This week I've jumped back into coding the remaining demos and writing the manual. There are some 52 functions and procedures I've included in the Musubi and as of this writing I've added over half of them to the documentation. I really don't know why the project had stalled for so long, but I think that like all artistic endeavors it is a matter of mood and timing. In any event the project will likely be wrapped and ready to go by month's end. Euphoria remains a rather obscure open-source language and I don't know what the response will be, but I'm driving on to complete it for the sake of closure. Even belated, I like to finish what I start if possible. I'll post a link here on this blog, and add an entry to my web page when it's ready. Stay tuned!

The picture of the week was created using Bryce.

Click on the image for a full-sized view


The loops of the week are some exotic percussion loops.

The PC game of the week was Unreal Tournament 3 again.


The book of the moment is Irish Folk Tales, edited by Henry Glassie.

Send your comments and feedback and I’ll read it all and respond to some of it.

Bye for now!

Friday, June 06, 2008

Dogwaffle DIY Devlopments

Friday June 6, 2008

Greetings again! The topic for tonight is graphics and the focus is on creating your own extensions for Project Dogwaffle. I recently acquired and started using the tBDW thinBasic Dogwaflle scriptable interface. This package allows you to create your own plug-ins for Project Dogwaffle using the ThinBasic scripting language. There are only about a half dozen statements and a like number of equates to get your head around, so getting started is relatively easy. Your thinBasic script can either render a completely new picture or modify an existing one. I've written some simple scripts to convert color pictures to b&w and to generate mathematical patterns. It's fast, fun, and easy so I'll recommend it to anyone looking to expand the basic functionality of PD.

The picture of the week was created using Project Dogwaffle.

Click on the image for a full-sized view

The loops of the week are some boogie drum loops.


The PC game of the week is still FreeCiv. This TBS game is an open-source clone of the classic Civilization 2 PC title.

Send your comments and feedback and I’ll read it all and respond to some of it.
Bye for now!

Friday, May 30, 2008

Polished and Portable PC Gems

Friday May 30, 2008

Friday Greetings! It's another nice late spring evening and I'm back with more of the good stuff. Tonight's topic is computing and I'll focus on portable applications. A portable application is a program that can be that can be installed and carried around on a portable storage device and used on any Windows computer. What this means is that you can take a small suite of your most used programs on a handy USB flash drive or portable hard drive and have them ready to work wherever you go. PortableApps.com has collected a number of free/open-source programs with a handy launcher application. The set includes portable versions of Mozilla Firefox, the OpenOffice.org productivity package, and ClamWin anti-virus. Being the artist/musician/geek that I am, I was also interested in graphics, games, programming and music applications. For 2D drawing you can use GIMP, or Project Dogwaffle. For 3D graphics, Anim8or and a few different portable versions of Blender are available. For music you can use the brilliant and free Audacity sound editing application. For games you have a fair selection of low calorie, limited resource options to choose from. Programmers can use the Decimal Basic programming language to create small applications. As an exercise I put together a bunch of portable stuff that took up only about ½ of a 2gb flash drive. It's perfect for computing and creating away from home. Give it a try!


The picture of the week was created using Project Dogwaffle.

Click on the image for a full-sized view


The loops of the week are some fat bass parts.

The PC game of the week is the classic puzzle game Bejeweled.


Send your comments and feedback and I’ll read it all and respond to some of it.
Bye for now!

Friday, April 04, 2008

New Programming Projects

Friday April 4, 2008

Hola and TGIF! It's April and the weather is mild and suitable for springtime. This week I started my first SDL project using Dev C++. I've done some work in the past with SDL and the Euphoria programming language, going so far as to write a header for SDL and a number of associated libraries. Euphoria quite a bit easier to work with, but C++ has the advantage of being a much more widely used langauge. I had a couple of false starts trying to add the SDL files to my project by hand before stumbling onto the the DevPak which contains all the necessary SDL stuff in an easy-to-install package. So far I'm still at the mud-pie stage, but if this works I'll try adding some other SDL libraries such as SDL_mixer and SDL_TTF. The other programming news of the week was that I downloaded and installed a copy of thinBasic, yet another interpreted programming language with a syntax based loosely on BASIC. It looks quite cool, but as always I've more projects then time to work on them all so it will have to wait for a decent test drive.


The picture of the week was created using Project Dogwaffle.

Click on the image for a full-sized view


The loops of the week are a set of sizzling synth bass parts.


The PC game of the week is Command and Conquer 3.


The book of the moment is Beginning C++ Through Game Programming, 2nd Edition by Michael Dawson.


Send your comments and feedback and I’ll read it all and respond to some of it.

Bye for now!

Friday, November 09, 2007

Friday November 9, 2007

Greetings! It's November and quiet here tonight. This week I tried to do a bit more programming in Euphoria. I've been trying to pick up where I left off on Musubi, a simple library for using SDL with Euphoria. My tool of choice for programming in Euphoria is still the Crimson Editor which actually serves nicely as a kind of IDE. The other major piece of work that remains to be done on Musubi is some meaningful documentation. I usually keep the manual simple, but a project with the scope of Musubi will require a more detailed approach. I'll post more as I get more work done and approach the first release of Musubi.

The loops of the week are a set of booming bass lines.

The picture of the week was created using Anim8or
Click on the image for a full-sized view


The website of the week is the Mathematics Graphics Gallery

The PC game of the week is still Supreme Commander. RTS rocks, and giant robots rule!

Send your comments and feedback and I’ll read it all and respond to some of it. Bye for now!

Friday, July 13, 2007

Friday July 13, 2007

A slightly belated Good Evening to all! I've been away doing a bit of reorganization, and preparing more content for the game project. Yea, yea, it's an excuse, but life if full of those and I'll try not to exploit them too much. The topic for this week is audio and focus will be on sounds and a short musical loop for our computer game project. Last week I went over the creation of some graphic elements, and in keeping with the theme and genre (simple puzzle game), I'm likewise going to stick to only a few choice sounds and a very brief bit of background music.

I used the Audacity sound editor for the sound effects. Audacity lets you generate a number of different tones, including saw, sine, or square waves, plucked string sounds, or random noise. You can then trim the sample down to a suitable length (I made mine about half a second), and apply a few effects and export it as a WAV. I made 3 samples to use as sound effects in the game and saved them as WAV files.

Click on the picture to get a full-sized view.


Right click on a name to download the WAV file.
---- Blip ---- Boop ---- Bump -----

Now let's see about a quick musical piece. My favorite “all in one” application for making music is Orion Pro. I created a series of patterns, little one-measure musical snippets, for 4 different chords; C, Em, Am, and F. I assigned 4 different software synthesizers to the each of patterns; A drum machine, vintage additive engine, bass emulator, and plucked string. I slowed the tempo down to about 110 BPM (beat per minute) to give it a less frenzied pace. Effects were applied, and the patterns were strung together (sequenced) into a short song of roughly a 1 minute duration. This rough mix was then exported using the “Stream to WAV” option.

Click on the picture to get a full-sized view.


We're almost through now. I used Sound Forge Studio to do the finishing steps on our song file. The main steps were adjusting the volume level using the “dynamics” and the “normalize” functions. I also applied a small amount of “reverb” to the song and exported to OGG (OggVorbis) format.

Click on the picture to get a full-sized view.


Right click on the song name to download the OGG song file.

----- Chroma -----

The name of the music file is also the name I've settled on as the title of our demo game. Chroma. That has a nice ring to it. And that's it for this week. Next time we'll have a look at the initial programming steps in Euphoria.

This game project has turned into something far larger than the original scope of this web log, and I'd like to know if my few but loyal readers find it the height of tedium or think I'm onto something. Would anyone want to see a more detailed version as an HTML document, going into the nuts and bolts of each of the steps I've briefly covered in the blog? How about a regular feature on a separate web page that exclusively delves into the in and outs of game design and implementation using free/cheap tools? Gimmie feedback folks and tell the old gray cat where next to go!


You Would Be a Pet Bird

You're intelligent and witty, yet surprisingly low maintenance.
You charm people easily, and they usually love you a lot more than you love them.
You resent anyone who tries to own or control you. You refuse to be fenced in.

Why you would make a great pet: You're very smart and entertaining

Why you would make a bad pet: You're not interested in being anyone's pet!

What you would love about being a bird: Flying, obviously

What you would hate about being a bird: Being caged

Send your comments and feedback and I’ll read it all and respond to some of it.
Bye for now!

Tuesday, June 12, 2007

Tuesday June 12, 2007

Belated salutations. The entry for this week is late cause I’ve embarked on a long needed but all-too-brief trip to Australia. I’m currently in the city of Adelaide, which is located in the state of South Australia (closely adjacent to the grand state of bliss). What a remarkable world we live in when one day you can be enjoying the warming rays of a near-summer sunny day and the next gazing out on cold, crisp evening in early winter. It was a rather last-minute decision that leads me back to the southern hemisphere, but I’m here to scout out firsthand info on a possible (or highly probable) relocation here from my current gray cat’s loft.

The topic for this week is programming, and I’ve decided to forgo the usual structure of this log to document the creation of a small computer game over the next few weeks. We’ll go over everything from basic design through making the graphics and audio, to coding in weekly installments that should prove bite-sized and highly digestible. It will also be a learning experience for me, since I’m no seasoned pro when it comes to rolling my own games. Each week I’ll go over is some detail what steps to take, what tools I’ve used, and how far along in the overall project we are. The usual music, graphics and programming entries will relate to the building of our game. It’s a rather ambitious project, but most good things in this life make you sweat a bit. Will this be fun stuff? Of course! Some work? Yep! Shall we proceed? Make it so!

The first choice to be made in the game is what genre or type of game we want to make. For this project I think a puzzle game will offer the best mix of playability, challenge and relative simplicity to program.

The next step will be the choice of platform, or what type of hardware and computer OS we’re writing the game for. There is also the possibility of designing our game to be cross-platform (playable on many different platforms) though that has some special requirements. I’m limited to the choice between Windows XP, Suse Linux, and Palm OS. While I’m tempted to make a nice Palm game to play on my PDA most of my programming experience is in creating Windows applications so for let’s make this project a Windows game. We can approach the prospect of porting the game to another platform or platforms later.

Now that we have decided on a platform the next choice will be which programming language to use to create our game. Your choices may vary, but on my PC I have Java, Dev C++, FreeBASIC and Euphoria installed. This choice is a bit simpler, because I’m not versed in Java or C++ (yet), and of the 2 remaining choices I’ve far more experience with Euphoria. For this series, I’ll take the easier path and save the trailblazing into new programming realms for later. Euphoria is also nice because I can use my Euphoria header for the SDL graphics/multimedia library. That last bit of geek-speak will be clarified once we get to the actual programming phase of the project.

And that’s about it for this installment. Next week we’ll do the graphics design and start formulating the rules for our game.

That’s it for this week. The picture of the week and the loops will return next time.


Saturday, May 05, 2007

Saturday May 5, 2007

Hello and welcome back! The topic for this week is computing and the focus will be on scripts and scripting languages. To a computer programmer the term “script” doesn't refer to the lines that an actor will read on stage or TV. A script is a more generic term for a kind computer program. A scripting language can actually take the form of a general-purpose programming language, as in the case of Perl or Ruby or Smalltalk, or can be very specific, as in the case Unreal Script and Quake C which are used as in modifying FPS games. Anim8or, one of my favorite graphics/animation programs has added a scripting language called ASL in the latest version. The dark side to all this scripting goodness is that the potential for abuse exists. Javascript, a scripting language and one of the main web programming languages, has come under criticism for a number of security issues. It is apparently quite easy to insert a bit of ad-ware or other unwanted info into Javascripts. I'll have more on scripts and my own attempts at script writing in a future installment.


The picture of the week was taken on one of my recent bike rides.

Click on the picture to get a full-sized view.


The loops of the week were created using Orion Pro

Right click on a loop name to download it.

----- Bass 1 ----- Bass 2 ----- Bass 3 ----- Bass 4 -----

----- Drums 1 ----- Drums 2 ----- Drums 3 ----- Drums 4 -----

----- Guitarish 1 ----- Guitarish 2 -----


Send your comments and feedback and I’ll read it all and respond to some of it.

Bye for now!