A small RPG & video game company

Name: Anagramarama
Version: 0.6
Author: Colm Gallagher, Dennis Payne, Alan Grier and Thomas Plunkett
License: GPLv2
Operating System: Unix and Windows

Anagramarama was a polished jumbled letters game. While not my preference in gaming, I appreciated the quality. Unfortunately it's web site was gone. No updates had been made since 2013. There were a few forks on github but those also had little activity. The game could stand as it was but was in danger of being forgotten.

Gamerzilla Support

With digital downloads being a prominent sales method, you could no longer easily see someones collection of games. Putting game achievements online gave everyone insight into games you tried and which you seemed to like. Adding game achievements to Anagramarama could contribute to spreading news about the game.

Adding Gamerzilla support to the code wasn't hard. The harder piece involved determining when to award achievements and generating achievement images. Anagramarama displayed seven letters. I created achievements for finding all the words of a particular length. Some letter combinations were easier than others but that is fine. I also added an achievement for completing all the words before time ran out.

Non Coding Activities

With the web site gone, people searching for the game could have a hard time finding information about it. The github repository does not have screenshots to take a look at. I looked up the original web site in the wayback machine and created a new site. It's simple but gets the job done.

For open source games getting included in Linux distributions can increase the awareness of the game and makes it easy for people to try it out. Ubuntu already packaged an old version of the game. They patched the location of the data files with a different hardcoded value. I patched Anagramarama to specify the data location when building. The man page came from the Ubuntu package.

I created a desktop file and icon. Fedora wanted programs to include metainfo files for Gnome Software. Games should include open age ratings service. With that you could stop and build a package for any Linux distribution but it could still be easier.

Cmake

The original code included four makefiles. One makefile which supported all platforms was not possible. In projects which I used makefiles, I typically had two, one for Unix systems and one for cross compiling to Windows. Recently I've preferred to go with Cmake.

A single cmake file worked with Unix and built with Fedora's cross compiling tools. I used pkg-config in my Cmake files which may not work as easily building directly on Windows. I've never had anyone comment on building on Windows so I've never looked into a solution.

Fullscreen Support

After showing the game to a local user group, a user mentioned the window being a little small. The game used SDL 1.2 which didn't do a good job with fullscreen. On Fedora SDL 1.2 had been replaced with a library using SDL 2 but that wouldn't help the user who was on Ubuntu.

I decided to port the code to SDL 2 and enable a fullscreen mode. I've ported SDL 1.2 programs to SDL 2 before and there was a migration guide. SDL 2 was designed with hardware acceleration in mind. In SDL 1.2 time, you might save a section of the screen, draw a image, and later erase it by replacing the image with the saved section. Anagramarama followed this pattern. Modern hardware could draw textures much faster making it better to redraw the scene than carefully erasing things.

The sprite structure in Anagramarama had two SDL_Surface variables. The image for the sprite and the saved section of the screen. When the game started, it copied the images from the larger images into the sprite. For the clock, the image would contain the four numbers and a colon. For the letters, it would just be the image of the letter.

I eliminated this setup. Instead the sprite gained an array which referenced the larger images which was loaded as a texture. Drawing the clock would now require five draw commands but the hardware handled it faster than combining the images together. Since I was no longer erasing the images, I had to redraw the background every time.

There was a complication I discovered. The images were all bitmap files. They used a color to represent transparent. I switched to using SD2_image and storing the images as png files. It could of been handled without that but it reduced the size of the image files which had been a complaint when packaged for Fedora.

The F1 key toggled to the fullscreen mode. The user who mentioned the screen size issue mentioned that it needn't be fullscreen. It would be good to make the window resizable but all the drawing and mouse input would need to be adjusted.

Future Improvements

I don't have any plans for future work. Resizable windows or a simple double size mode is possible. The word file is British English so it accepts colour not color. I did find a fork with American English but the developer simply added words and didn't remove any. If you wish to support open source game development, the game is available on itch.io.

Comments

No comments yet.




(optional, e-mail address only visible by admins)

Last modified: 2021-12-18, 19:22

© 2009-2022 Identical Games

powered by phpSQLiteCMS