Showing posts with label Snake. Show all posts
Showing posts with label Snake. Show all posts

Monday, August 19, 2013

Project 4: Snake Version 0.3.1 - now with a little less crashing.

Version 0.3.1 of the snake game fixes a problem where pressing the 't' key to give yourself points before the game starts caused the game to crash. All the cheat keys (and the control swap key) now only work while the game is playing.

All the other features introduced in version 0.3.0 remain unchanged.

You can download it here:

  • The Windows Versions (32-bit, and 64-bit)
  • The Mac OS X Version
  • The Linux Versions (32-bit and 64-bit)
  • Friday, August 16, 2013

    Project 4: Snake Version 0.3.0 (Almost Undetectably New!)

    The Snake game has still been holding my attention, so I've put together the newest update. This new version however is primarily changes to the design and organization of the game.

    Does this mean you won't be able to tell the difference from version 0.2.0? Not entirely. The new structure has made it easier for me to switch things in and out and make things a little easier.



    The biggest change is that now the controls are modelled after those implemented in Nibbles. This means that when you're heading in any direction you can now only turn to the side rather than back on yourself. However if you liked the original controls, all you have to do is press 'k' to switch between the two controls.

    Furthermore if you want to make things easier or harder on yourself there are some cheats available:

    • Press 't' to add a point to your score, this moves the target and is just like you hit the target on your own.
    • Press 'y' to add a level. This levels you up, speeding up the game.
    • Press 'u' to turn off collisions, so you can go on forever without worrying about running into yourself. Press 'u' again to turn them back on again.
    That's pretty much the update for this time. Lots of changes that mean more to me than you, but it should make it a lot easier to do the things I'm thinking for the future. Speaking of which Version 0.4.0 will be along in a little while and should bring a GUI and different kinds of worlds to play.

    But for now you can download Version 0.3.0 below:

    Edit: See the Patched Version 0.3.1
    • The Windows Versions (32-bit, and 64-bit)
    • The Mac OS X Version Edit: There seems to be a problem with the Mac OS X app. I will investigate as soon as I can.
    • The Linux Versions (32-bit and 64-bit)


    Tuesday, July 16, 2013

    Project 4: A Further Surprise Snake Update (Version 0.2.0)

    So it seems I still have a lot of procrastinating to do. I've managed to turn out another version of Snake. (This time version 0.2.0).


    This version introduces:

    * Awful Sound Effects - it's weird old beeps, that kinda appealed to me
    * Mute - press 'M' to turn off the awful sound effects (this doesn't preserve between games yet)
    * Scaling Snake Colour - now as the snake grows it fades to grey towards the end of it's tail. This makes it easier to see which way you're going (especially when coming back from pause).

    Please play and let me know in the comments if you run into any problems or bugs or any thoughts at all really.

    You can get the game from these links:


    Thanks as always!

    Thursday, July 11, 2013

    Project 4: A Surprise Update on the Snake (Version 0.1.0)

    Again, my skills in procrastination have allowed me to get things done. This time, now that I don't have it as an active project, I managed to put out a revision of the Snake game.

    This version introduces a couple of new features:
    • Pausing! Now you can press 'p' to stop the game whenever you want. To resume the game just press any of the arrow keys and start going again. 
    • Bouncing Scores! I'm sure I'm the only person who cares, but now when you hit a target the score bounces up and down a little bit. It's not amazing animation, but it's something.
    • Proper key handling. This doesn't change the game at all, but I was able to apply a lot of the things I've learned about Processing.org and realized that the tutorial I'd followed way back in the beginning had a strange way of handling key presses (relying on the main loop of the program). Now I've updated it to use proper event handling. 

    You can download the update:
    If you'd care to beta test this for me I'd really appreciate it. Leave me your thoughts in the comment section.


    Monday, July 01, 2013

    Project 4: Snake: Update and Wrap-up

    It may have taken me nearly a year to do a few afternoon's worth of programming, but the first version of my Snake game is finally done. (Spoilers: You can play it using the links at the bottom of the article.)


    This was quite a bit of fun to put together. One of the nice things about programming a game (especially one this simple) is that the results are immediately visible. It's also nice to have small targets to hit that are fairly easily achieved.

    The game plays pretty much like any instance of snake you may have run across in the past. I did choose to have the edges of the world wrap because I was entertained by the math, but I also enjoy that it does cause you to think a little extra since the snake is not always apparent as adjacent to you. Right now the game speeds up for levels 1 - 10, but the game doesn't end until you reach level 33.

    For the record though you can technically win the game, however I'm not sure how possible that is in reality. I've found the responsiveness with my Mac Book Pro to be insufficient at the higher levels, but with a different key board it may be easier. It's also somewhat difficult because there's no boarder around the snake and so it's very difficult to see where the snake is at any given point in time.



    I'm pleased with the level and score markers that pop up. It would be nice to have them fade in or out, or for the scores to bounce a little. I decided to stop where I got to and if I'm able to put those in as extras in a later version. Additionally in later versions I'd like to add some game modes and manage difficulty better than I am right now.

    I'd really appreciate some help testing out this version of the game. If you have a little time I'd like to know:

    • if/how it works on different platforms (links are below)
    • if there are any bugs
    • is it fun? What could make it more fun?
    Comments in the comment section would be appreciated.

    For now it needs to be downloaded, it's not really worth making it embeddable.
    Control the snake with your arrow keys. You can quit with the 'q' key and win with the 'w' key. From the game over screen you can start playing again by hitting the space bar.

    These should all run with the included files. Processing has an automatic generator and I've found that the Windows and Mac versions seem to work for me. I haven't had time to test it on Linux yet.

    Thanks for your support. I'll do another version but for now it's on to other things!


    Wednesday, September 12, 2012

    Project 4 : Snake : Update

    The deadline for the first phase of the Snake project was September 1, 2012. By that point I had hoped to have a basic version of the game up and running. Unfortunately, I wasn't quite able to finish all that I'd hoped to do in the given time period.

    Snake. Version 0.1 - it's almost a game.

    What I did manage to get done was all the basic parts of the game except for the actual snake. I have a dot that goes around the world and can hit another dot that gives the player a point. This is mostly the point of snake, but right now my snake can't grow a tail.

    Building the game in Processing.org was interesting. Processing is designed for non-expert programmers to be able to develop animations and interactions. It based on Java, but has a limited set of  the java utility libraries (although it does allow for other libraries to be added). The java basis is convenient because that's the language I've done most of my development in so far, however not having things such as queues makes things (such as the tail of the snake) harder to implement.

    Even though I haven't finished the tail of the snake, it's interesting to note that the game already has the feeling of snake. The controls have a slight delay (because the movement of the snake is not linked to key presses) which feels very similar to most of the other implementations I've played in the past. I actually find this somewhat frustrating, since it causes you to have less control than you might. In the implementation I finished a while ago (and then deleted somehow) I implemented the control differently (I think I had the snake move on the key press regardless of its speed) and this made the game much more controllable and less frustrating.

    Since I didn't get everything done in the last phase, I'm going to start my next phase by finishing getting the snake's tail running. I also want to implement the move-on-key-press control system and a way to switch between the two so there are traditional and "comfortable" modes. I also want to put in some of the "game" functionality, including a start screen, a pause screen and an on screen score / level system.

    It's come back into the semester and sadly I still have one class left to complete in my PhD, so this can't be a high priority for the next few months. I don't think it will take a lot of time to finish but I want to do a good job so I can have it in a state where other folks can play it, so the balance of all that I'll end this phase on October 14, 2012.

    Friday, August 03, 2012

    Project 4 : Snake

    As I have mentioned here before, one of the goals I have is to design and make video games. I don't know that I mean to do it as a career (said the perpetual student) but  it would be a fun hobby.

    I don't have experience in games programming (baring some assignments during my bachelor's degree) so I need to start actually doing something to start getting some experience (you have to start your 10 000 hours somewhere).

    I figured to give myself an achievable start I'd though I'd tackle something with not too many moving parts. As such, I thought I'd implement Snake. For the uninitiated, in basic snake you play a snake, made up of squares and you eat dots which make you longer and you try not to crash into things (either the wall or yourself.)

    Emulation of the Snake I remember best on the TI-83.

    I like snake for a number of reasons. The first as I mentioned is that it's relatively easy to program and a simple implementation can be put together in a day or an afternoon (even if you don't really know what you're doing). It is also easily extendible (it's not too much extra work to get to tron bikes or to caterpillar) and still has enough game play aspects to introduce interesting ideas.

    This is not a terribly novel thing to do. There is a site at snakegame.net which has an archive of some of the more interesting implementations which come in a variety of flavors. There's also a cool version Snakes on a Cartesian Plane which plays with a lot of different game play concepts and ideas.

    It's punny and an exciting experiment.

    A friend of mine, who happens to be experienced in the way of game design, mentioned a developer who always implements snake as a way to get familiar with a new platform. I feel like this is a good idea and I'm planning to follow that as well as I start teaching myself how to make games.

    The first stage I'd like to finish is to implement a vary basic, limited graphics version of snake using Processing.org. I actually did most of this a while ago but somehow lost the project on my computer so need to start again. This should be fairly quick (as I said maybe an afternoon of work) but I'm going to give myself a deadline of September 1, 2012 to finish.

    The Books I Read - November 2024

    November was a bit weird. The Hands of the Emperor is long, but excedingly good. I'm continuing to find Anna Lee Huber a very engagin...