Author Archives: James Heslin | program9 | PROGRAM_IX

JustEvasion

JustEvasion is a game that I developed in 2011. I wanted to make a simple game to keep my programming hand in over the long summer months. I developed it in C++, using OpenGL and the freeglut library. I was relatively unfamiliar with C++ at the time, but I had some sample freeglut code to learn from. The low-level nature of the libraries made some features quite difficult to implement, but it was a very good learning experience for me.

JustEvasion is a game in which the player moves a star shape around the screen. The star is chased constantly by circles, which use an extremely basic chasing mechanism. As such, the circles often line up or overlap as they attempt to reach the player. Players score points by effecting these overlaps. When two circles overlap perfectly (so that only one can be seen), one of them will disappear and the score will increase. If there is more than one overlap happening at once, the player gets a combo bonus.

I had JustEvasion working to this specification within a relatively short time, and I wasn’t sure what to do with it next. Some time later I was investigating Adam Saltsman‘s Canabalt, a very entertaining one-button Flash game.I discovered that the library he used to make the game, Flixel, is open-source. It is possible to develop a full game using only Flixel and FlashDevelop.

I was very excited about Flixel, so as a first project I decided to remake JustEvasion as a Flash game. Although I had made JustEvasion open-source on Google Code, almost nobody I knew had been able to play it because of its dependence on system configuration. A Flash game could remedy this, and allow everyone to at least try my game.

I started by reimplementing all the features that JustEvasion had, then started to add new ones, like a high score cookie that is stored on the computer for the next time you play, and different behaviours in the enemies. The development in ActionScript3 was slow at first, because I had limited Flash experience before, but once I grasped the differences I made progress quickly.

This slideshow requires JavaScript.

JustEvasion was a landmark project for me. Being able to publish a game in a medium everyone could understand and play made for a great feedback loop. Catching bugs was a lot easier with ten or fifteen people trying each build. It also boosted my confidence in my own abilities.

War: Always Changing

Modern ‘war games’ fall across multiple genres, from turn-based strategy to intense first-person-shooter. Here are a few examples:
– Civilization V: Build an empire and command armies in this turn-based strategy game. Each turn you can move and manage units, found new cities, and attack other civilisations to expand your area of control. Very far removed from the action of war, but most games involve a lot of battles. Turns can take as long as the player needs.
– StarCraft II: The most competitive real-time-strategy game in the world at the moment. Players start off in opposite corners of a large map, with no vision of each other. They must micromanage resources and individual units very quickly to eliminate their opponent’s units first.
– Call of Duty: Modern Warfare 3: The latest instalment of the wildly popular Call of Duty series


Gameplay:
Call of Duty games are interesting in that they only and explicitly reward violence. In the other games mentioned here, war is still going on, but for example in StarCraft, you need to manage your resources well to win. In Civilization, there are rewards for various diplomatic or trading successes – you don’t have to solve every problem by attacking.

Technology:
Call of Duty was originally a PC game, but later instalments have been converging heavily on the console market (with interfaces to reflect this), because the console players are a better market for this kind of game now. StarCraft and Civilization have always been PC/Mac only games. Most management/real-time-strategy games, of which there is a large subset that could be called war games, work better with the mouse/keyboard interface. First-person-shooters can work well with this, too, but they have also traditionally worked well on consoles, and that is a rich market for people who can’t be bothered installing graphics drivers.

Story:
In Call of Duty: Modern Warfare, the writers attempt to imagine how war will look in the next ten years. The usual hyper-violence is interspersed with scripted cutscenes telling a Tom Clancy-esque story of political terrorism and dodgy military practices.  Most of the game time is spent in online multiplayer modes, as this story isn’t actually very long. The multiplayer modes range from free-for-all deathmatches to point capture. Civilization has mostly emergent stories, stemming from what you, as the commander of the civilisation, do. StarCraft’s story happens mostly in the background. Even more than Call of Duty, this game is played for the online component, which is entirely based on player-versus-player battles.


War Game Culture:
War games have a tendency to desensitise players to situations or events that would be disturbing to someone who does not play them. This can come across in the lexicon of players: ‘I killed him! Woohoo!’ or simply in the comfort and ease with which the average player can sit down to play through a mission which requires the killing of thirty or a hundred virtual people. And this is only at a micro level (first-person-shooters). At a macro level, games like Civilization can involve decimating entire armies with one click of a button, sometimes even the player’s own armies if they miscalculate the odds. It’s interesting to think that being told you have had a hand in thousands of deaths, by a game, might not be at all distressing to the player on a moral level.


America’s Army:
America’s Army is a game developed by the American military to engage players in army-like situations through their computers, and allow them a glimpse of what army life might be like. Its site claims it offers ‘the most authentic military experience available’. On the other hand, to me it seems like advertising at best (which might be acceptable), and propaganda at worst (which of course is not). As much as I have enjoyed Call of Duty and similar games in the past, I’m not sure how comfortable I am with the military publishing their own version of what war is like. It feels too easy for them to twist what they show to players, who may be as young as twelve, according to the ESRB Teen rating.


What wars are being fought in videogames?
Videogames used to be quite removed from reality. Even if the wars depicted were ‘realistic’, the limitations of hardware and (sometimes) censorship kept the game mechanics simple enough to be far removed from anything that really happened. For example, in Chopper Command for the Atari 2600, the helicopter you control engages fighter jets at its own altitude, which I don’t think is realistic. It can blow up other helicopters and these jets in one shot, and it seems to be firing laser beams, even though it was a modern setting in the desert.
Now, though, games like ARMA II are making war as realistic as can be reasonably imagined. Large-scale battles happen around the player, instead of the player being the only one having an effect on the scenario. Food, drink, fatigue, and many other things are factors. If you get hit by a bullet, you will probably die. No gun is guaranteed to hit.


Future war games:
I think we will see a split soon between war games that are realistic to a fault, like ARMA, and more arcadey first-person-shooters coming from the current Call of Duty games. Similar to the way all racing games used to be billed as simulations, but now there are simulation games and arcadey games, I think the next few years will see serious ‘war simulation’ games that are played by serious people who want to do everything correctly and know exactly how it works.

Games and Learning

One of the big questions on the topic of games and learning is this: why do we find it more difficult to engage with a deliberately educational game than with a regular game? Theoretically, they should be very similar. I consider the main difference to be that educational games try to impart knowledge useful outside of the game, and regular games do not.

First, let’s look at the assumption: that we find it more difficult to engage with (i.e., enjoy and learn from) an educational game than a regular game. I’m afraid my evidence is going to be mostly anecdotal here. I played quite a few educational games in my younger days. I put good time into some of them, too. But I don’t think they made me any smarter. On the contrary, I resented the learning/teaching parts, because no matter how small and streamlined they were, the fact was they were preventing me from playing the game I wanted.

Most educational games I’ve come across have middling gameplay structured around the idea of making the player more familiar with a concept, or more skilled at a particular thing (like simple arithmetic). Most of the time, they involve sections of play similar to a regular game, with progress dependent on showing some knowledge or competence with the subject matter. This can be integrated with the gameplay, or in the form of a ‘gate’, where the player must perform an action at the end of the level/section to get to the next. Both ways have their problems. If the learning is integrated with the gameplay, it can make the gameplay seem insincere – as though it’s not about fun at all. If done well, though, this is the better option. Examples would be the Professor Layton games on Nintendo DS.

Learning only enforced at certain points – ‘gates’ – in order to progress, can be very annoying. The player completes the section’s actual gameplay, and then must come down from this high of achievement to do a mathematical equation or similar. It breaks the flow of the game considerably, and is more likely to make the player stop playing, or even give up on educational games. I had such an experience, with a submarine game that attempted to make me better at simple maths. I can’t find it now, but it was a lot of fun – apart from the doors between levels, which, you guessed it, required an equation to open. I would go back and play it now, knowing that the maths would not be a problem, but when I was much younger it was a real discouragement.

As a counter-point to all this, I’d like to ask the reader how much you know about your favourite game, or even any game you’ve played regularly for the last month. How much information have you retained about that game? The mechanics, any itemisation or customisation options? Can you easily evaluate the best way to tackle a given situation? I play League of Legends, as I have mentioned before, and the amount I know about that game is staggering. Ridiculous even. I know roughly how to play every champion (there are more than a hundred), and could give you a general idea of what items (there are plenty) to buy when playing them. Countless other useless facts fill my brain about this game. And yet I couldn’t learn off fifty or so definitions for my Leaving Certificate Chemistry exam.

I have friends who play Magic: the Gathering, which is a trading card game with absolutely massive scope. Over fifteen thousand different cards exist, although I think only a fraction of that are ‘legal’ at any one time. These people can hear a card name, and instantly visualise the card, when it would be useful, and various other related facts. I used to be able to do this, but I don’t play any more.

It’s safe enough to say that I would not be at all as competent at League of Legends, or my friends at Magic: the Gathering, if we did not retain this information. But that seems to imply knowledge is a barrier to success, and I have already said I think that is a bad idea. Perhaps it’s that the games don’t force the knowledge upon the players to progress, more the players want to accrue it in order to become better. Games that are playable with just knowledge of mechanics, but require knowledge of specific content to achieve mastery, seem to be a good model for educational games.

Now all we need is somebody to make an educational game like this. If only I wasn’t so busy…

Ryan ‘icculus’ Gordon on Tools for Open Source Game Development

Here is an hour-long video that I found in my research for my final year project. Ryan Gordon’s website, icculus.org, was the primary host for the Quake3 open source project (and similar projects) for quite some time, and he has been a big part of making the Humble Indie Bundle games run on multiple platforms.

In this video, Ryan talks about the plethora of free and open source libraries, languages and development tools that are available for game developers. It doesn’t start well, sound-wise, but if you skip to about the 2:20 mark the sound comes in perfectly from then. I encourage you to take an hour of your time and check this out, if you have even a passing interest in open source game development.

Role Model and Ideal Jobs

The interesting thing about the still-young game medium* is that there are so many different developers out there, creating such a wide range of content that anyone should be able to find something they like. There are many people I admire out there making games, and in this post I’m going to talk about a few of them.

Kenta Cho – ABA Games
ABA Games consists of just one man: Kenta Cho. He is employed full-time by Toshiba, so he only makes games in his spare time. He began making games as a hobby in the 1980s when he was a child, and continues to do so today. The first shoot-’em-up game he produced, Noiz2sa, received a lot of interest and praise, so he decided to specialise in that genre. His games are extremely abstract, often taking an existing shoot-’em-up mechanic and twisting it slightly, or paying tribute to revered games of the genre (in his game rRootage, he includes a mode recreating the mechanic of Ikaruga).

Screenshot from one of ABA Games' other titles, 'Torus Trooper'

Torus Trooper, also by Kenta Cho, is one of my favourite games.

Kenta Cho is a role model because he is able to construct such complete experiences – his games – completely on his own. He likes the classics, but isn’t afraid to tweak them in order to make a better game. Not only that, but he releases his games and their source code for free. In this interview, he talks about his reasons for not charging money for his games:

I create the games I want to play. And if some people want to enjoy and play my games, I give my game and code to these people.

When I make games myself, I usually lean towards the abstract. Simple shapes, equally simple concepts, but with as much polish as I can manage. An example is JustEvasion, a simple shape-dodging game that ballooned in scope somewhat.

At first, this was because I don’t consider myself a very good artist or designer, but as I did more games I realised I also like that style. When I first played Kenta Cho’s games, I saw that it is very possible to stick to the abstract and still create a solid game that offers something unique. I used to think that eventually my games would have to have complex sprite-based art in order to be seen as good, but that is not necessarily the case.

My Ideal Job
I’m still not entirely sure what my dream job is. Half the time I think I should work in a dedicated games company as a developer and make a proper career for myself in the industry. Even small companies have had success with this in Ireland, and the #IrishGameDev hashtag on Twitter reveals quite a few people who would like to be the next success story.
The other half of the time, I think that my day job won’t matter – my dream job will happen in my spare time, when I make only and exactly the games I want to make. This is why Kenta Cho’s story resonates with me so much.
What’s good about having two dream jobs is that I have more possible routes to them. Realistically, I’ll have to prioritise money in any post-graduate job search. That rules out the first dream job, but no matter where I work, I can still be a game developer in my spare time and be satisfied. Technically, I’m already living that dream. I develop games like JustEvasion in my time off from university, and sometimes during the semester as well.
To be a game developer, I must have a good knowledge of how games typically work – from the general application structure of input layer/visual layer interacting with an underlying logic layer, to specific things like how to avoid items clogging up memory once they’re no longer being drawn onscreen. I have had some experience with many of these common parts of a working game. Of course, I must also know at least one programming language used in game development, and be ready to learn more. I already know several such languages at varying degrees of complexity, and I am always eager to expand my knowledge.
Working alone is supposed to be very difficult. I am good at self-motivating, so working alone would not bother me, as long as there were something to work toward. Programming and design skills are essential. I have taken multiple game ideas from doodles to full prototypes, so I know I have decent skills in those areas. Design is something I would like to work on more and improve, but programming comes quite naturally to me, so I am confident I could succeed at this.

Ultimately, I think that as long as I’m making and playing games, I’ll be happy with my lot in life. I look forward to testing this theory further.


*I refrain from using the phrase ‘games industry’ here because I’m not sure all developers would consider themselves part of it. ‘Medium’ includes games made for fun, games made as art for free, games made for the love of it, as well as all the commercial games you can buy.

Is a game a game? Or is it a story? No etymological bias here.

This week in class, we’ve been talking about the reasons people play games. Broadly. More accurately, we’ve been talking about the reasons people say they play games. It wouldn’t be the first time people claimed to enjoy something to fit in with a crowd, right? There are two main groups in the academic view: ludologists and narratologists. (Incidentally, I have yet to see these two words in print listed the other way around.)

Ludologists are the people who play games for the- Hrm. I want to write ‘gameplay’, I want to write ‘game’, but either of those could be contested. I think it’s most accurate to say they play games to perform actions. They like performing actions, they see the interaction going from them to the game as the most important element of it. Taking a more extreme view, some of them declare that interaction to be the only important element. And all extremism has counter-extremism.

Narratologists are this foil.  They are most concerned with the story, or if there is no explicit story, with the emergent story that occurs as events unfold (i.e., the narrative). They maintain that a game is simply a new way of telling a story, so it should be judged and studied as such.

There is an oft-cited article discussing this debate on the now-defunct ludology.org, by Gonzalo Frasca. In it, he pulls together a lot of the previous academic literature on games and how they should be regarded. It is in this paper that the term ‘ludology’ is actually proposed (‘narratology’ having existed, as a study of stories, for some time).  He also covers the parallel contrast between ‘ludus’-based games, which all have a clear goal, and ‘paidea’-based games, which are better known outside academia as ‘sandbox’ games.

Ian Bogost, in a transcription of his speech at the 2009 DiGRA conference, posits that the debate is not really a debate. Narratology  was just “egging on the frail and underdeveloped hero that was game studies”, rather than trying to emerge a victor. He also says that Frasca misconstrued the origins of narratology, that it was a “structuralist approach to the study of narrative”, i.e., how stories can be separated from their telling. If you read and appreciated Gonzalo Frasca’s article referenced above, this one is a great counter-point on a lot of topics.

Bogost pointed me to another article, by Espen Aarseth, which, among other things, offers a concise summary of the topic: “One side argues that computer games are media for telling stories, while the opposig side claims that stories and games are different structures that are in effect doing opposite things.”

My own thoughts on ludology and narratology rather line up with my thoughts on that whole ‘games as art’ topic that was knocking around a while back. I’ll write a post about that soon. In brief, I don’t like it when there are only two sides to an argument. It’s not that I prefer to sit on the fence, necessarily. I often take one of those two obvious sides. But I don’t like the notion that only they exist.

I love games. Most of the people I know do. But after some serious thought on the matter, I think I lean a lot more towards ludology than narratology. I have played some games with incredible stories, and really enjoyed them, so I don’t think I could be called an extreme ludologist. On the other hand, I think a narratologist would be put off by games that don’t have good stories, and I never have been. I can get extremely lost in the flashing lights and explosive noise of a bullet-hell shoot-’em-up, or the long periods of wariness with moments of intense action that mark first-person-shooters like Call of Duty* and Halo. I play League of Legends a lot, too, and the only storytelling in that game requires the player to go looking for boxes of text in the menus. Without going into detail on game mechanics, it’s a game completely built around retaining silly amounts of information, and performing tiny actions over and over again with even tinier changes, based on context. The only stimulation comes from the feedback players’ actions have on each other. The play arena is the same every time. Specific events happen at scheduled points. And yet I am confident I have never put more hours into a game. The players bring something to it that I’ve never quite been able to put my finger on. I suppose it’s enough to say that they bring themselves. Just by their presence in the game world, they make playing more fun than any AI ever has for me. I don’t know if this identifies me as a slightly different type of player, or not. Perhaps I’ll go into detail in a later post.

A friend, who identified himself as ‘A Mass Effect Player’, had this to say: “Story is what makes you continue the level…the gameplay mechanics are just there to aid the story.” I offered the parallel comparison to books – what keeps you reading the book is the plot, not turning the pages. But games are not books. If I’m not enjoying myself on my journey through this story, I’m probably going to stop playing. If the ‘page-turning’, to continue with that metaphor, doesn’t interest me in and of itself, I usually don’t stick around for the story.
_____

* I think the fact that I genuinely enjoy this game is pretty good evidence for my identifying more with ludology. It does get quite the bashing online, for many reasons. I just get into multiplayer and have a blast, as it were.

Creativity with John Cleese

This is an absolutely amazing lecture by the great man himself on what creativity is and how it works. Just watch it, I promise your time will not be wasted.

Articulation: it’s, em, it’s, uh, that thing. You know?

You may have read my post from a few minutes ago, in which I published my FYP description. Apologies for the blog spam, but when the mood takes me to write, I have learned to let it happen.

I’ll be honest. I have been worried about this FYP topic for the last week. When I thought of it initially, a long time ago, it was a small, vague idea. The meeting with my supervisor opened my eyes to how much I didn’t know about my own motivations. In the last week I have been forced to examine and re-examine what I want to do, and importantly, why I want to do it. That proposal form was the catalyst for a lot of this concentration, and I’m very glad it was mandatory. At last I feel like I can explain to someone what it is that I hope to balance my degree on.

I hadn’t really thought about it before, but I think I articulate myself a lot better on paper (or, I suppose, on pixel). Having words locked down in front of me is very useful, especially when I can see that I’ve already written something once and don’t need to repeat myself. (I’m not going to make any lame meta-jokes here where I write that sentence again, but I’m letting you know that I know I could have.) 

It’s possible to infer from the above that I talk a lot. When I speak in person, I can find it difficult to stop once I’ve reached my point. I know this. It’s very annoying, because now I know about it I keep noticing it, and then I of course mention it, and suddenly I’m ten minutes into a monologue on how annoying this trait of mine is. It’s funny, except when it makes me look like an idiot. Or perhaps it’s just always funny.

Something like that is very hard to eliminate at the source. I have no idea what the source is, because I don’t even know how long I’ve been doing it. Perhaps I genuinely feel as though continuing to belabour the point of the day is helpful. Perhaps I crave the attention. Perhaps my short-term memory is a factor. I wish I knew. All I can do at this stage is try to catch myself doing it, and stop.

My Final Year Project Description

Open-source game projects, although common enough, are not that easy for beginners to join and actually be useful. There is a certain amount one can help by testing and giving feedback, but to keep my interest I wanted to be useful in a more direct, practical way – by developing. Unfortunately, this is no mean feat. Many open-source games are huge, groaning monstrosities of obfuscated code and incomprehensible design. I am under no illusions – I am sure that proprietary games are like this, too. But I think it would be extremely valuable to have a project to point beginners at as an easily-extensible example. I would like to try and make that example, or at least make something that could eventually become that example.

Since I am proposing my own project topic for the Final Year Project, my department want to be sure I know what I’m doing. To that end, I must write some 500 words on the subject and submit it as part of a Proposal Form this week. Below is a draft of that description.

Title: An Open-Source Game Using Open-Source Tools

Aims

The main aim of this project will be to create an open-source video game for the major personal computer platforms (Microsoft Windows, Apple MacOS, and GNU/Linux). The game should be relatively simple to play and understand. It should not be overly abstract, or complex to the level of simulation. Most importantly, it should be designed and developed in such a way as to afford extension by the addition of new game elements, such as new enemy classes, new game mechanics, etc. The goal is for a player to play the game, have an idea for a new game element, and be able to download the source code and implement their idea with the minimum of barriers.

Background Research to Date

I have been playing open-source video games for at least five years. Some examples are AssaultCube, WarSow, SpringRTS, Gunroar (and other games by Kenta Cho), as well as many others. The communities behind such games have always interested me. In communities for proprietary, in-development games like Minecraft, or on a larger scale, League of Legends, there isn’t much players can do when a bug is encountered or a feature is required. Open-source games offer the possibility, even if it is not always exercised, for players to see the code, find the problem, and submit a fix or new feature to the core development team. In preparation for this project I have read articles on beginning open-source game development, as well as a book on the subject by Will McGugan (Beginning Game Development with Python and Pygame, 2007).

Special Resources Required

This project was envisioned with Python and Pygame (a Python library for game development) in mind. Both of these work well with relatively low resources such as RAM, graphics cards, and hard drive space. As such, there is no real need for a high-end computer for either development or testing. A powerful computer would still be useful to develop and test on, especially if a more impressive demo can be constructed to run on one, but it is not at all a requirement. The only other requirement for the project is that it use open-source technologies – operating system, programming language, software libraries, editors, integrated development environments, etc. These requirements are already filled either by the Computer Science and Information Systems Department’s computers, and by my own computers.
The project also requires that it be hosted at some point as an open-source project on a service such as GitHub, which allows users to browse the code, read what the developer has to say about it, and make their own versions. This is a simple, free service that can easily be accessed from my own computer.

Significant Milestones

– Create a simple game engine in which to build the game
– Write a design document for the game
– Develop a demo to test the concept
– Take feedback on the demo from a group of peers
– Develop more of the game, possibly to an agreed end point
– Submit the game to GitHub or a similar open-source project hosting service and direct people to it
– Analyse any modifications people make or user-created content people contribute to the game using this service

 

Some interesting articles/links on Open-Source Games Development

Just a few links I’ve come up with in my final year project research. I might edit this post in the coming days if something is really relevant, otherwise I may as well make a separate post.

This is a nice introduction for an aspiring open-source game developer. Short and easy to read. http://opensource.com/life/11/2/open-source-games-it%E2%80%99s-team-effort

This article gets quite technical on why threading is important, using Quake3 and the Ogre engine as examples. Although it reads a bit like an Intel advertisement, it is still interesting and understandable at least in concept. http://software.intel.com/en-us/articles/open-source-game-development/

FreeGameDev has a forum where designers or project leads try to get new contributors for their games. They also have some ‘featured projects’. http://forum.freegamedev.net/

GameDev.net is another forum with some interesting discussion on the ups and downs of various open-source game tools. This stuff is always good to read, even if it is a bit rough and ready at times. http://www.gamedev.net/page/index.html

Zeouterlimits's Blog

Just another WordPress.com weblog

Smaointe Lambo

Lambo's thoughts on Lambo's intrests.

Colm's Blog

Full of games, programming and overblown opinions

jester252

Just another WordPress.com site

Project Management Blog

Learning in the module

Paul's Plethora of Peculiar Posts

Here be dragons (made of bad jokes, puns and weird imagery.)

Sophie O'Gara's blog

Creativity shall make dreams soar

Les Divagations d'une Jeunesse Imaginative

The ramblings of an imaginative youth

Phil's Blog

A blog about Philip and his opinions on Video Games, Art and just general Navel Gazing

Conor Murphy

Not sure if you know this but, I’m kind of a big deal

Some general vizardry

Life, gardening and like stuff

andruQuinn

Problem solving in programming. A blog to give new views into problem solving

Player Two

Ludology from a developer

William Laffan

A Portfolio blog

Not Your Blog

Let's go in there and take out that dragon!

Lukes-Site

Gravity-It's not just a good idea, it's the LAW!

wi11iamcb

The quite mutterings of a madman

Void of the Wordless

Shane's thoughts on Games Code Art Books