At (almost) the end of Day 1, I'm loading bits of maps from Tiled, and you can walk an @ around a map. I hoped to get further. I've made a button with Monogame.Extended.Nuclex to prove I can as I haven't before.

Monday, 26 September 2016

Introduction

So – I’ve been working on a game in spare time for a while, that (as always) may or may not end up amounting to much. But, I’ve done some interesting work that I’d really like to share – such that anybody with an interest in procedural generation or programming might be able to glean some insights.

The game I’ve been working on has (thus far) been called Golf, The RPG. It is intended on being a top down, roguelike inspired, procedural , Golf RPG with interactive fiction elements. The idea is that I want a golf game where the shots are chosen by the player, but the success the shot is determined by the skill of the golfer as opposed to a player-dexterity game like most conventional golf video games. The second idea is that when I personally golf, I care more about the time I spend talking to the people I’m playing with then the golfing itself – and I wanted to try to incorporate that into a game.

The part that this series of articles is going to be about is the process of procedurally generating a golf course. Bit of the approach might change and be refined as the game is developed - but you can see some of the thinking of how it happened.

This is the first of what will be hopefully 5 articles, appearing sporadically throughout the next fortnight.

Procedural generation - A Brief Introduction

So - what exactly is Procedural generation? If you've already got a good idea, this is the chunk to skip.

Procedural generation is getting the computer to do some of the creative work that a human would normally do in a conventional game. Sometimes, procedural generation is used for small bits of a game - such as some of the textures, or some of the sound. Sometimes it is used for level design. Sometimes, it's used as the basis of the entire game (such as No Man's Sky - which recently brought procedural generation to the limelight).

Rogue: The classic game, with procedural dungeons

My interest in procedural generation started with ADOM - a Roguelike game. Roguelikes are a genre of game, usually defined by procedural generation of levels, and permanent death. The procedural generation of levels means the game can stay interesting for a long time - because you can always keep exploring and finding new things, or face new challenges.

Procedural generation generally works as a set of rules that the computer has to follow to generate a level. In Atlas Warriors (above), generally speaking, rooms are placed next to other rooms if they fit, and door ways are randomly added. Groups of enemies are added, in such a quantity to be about as difficult as the player should be able to handle at that level. A couple of enemies are forced to appear - such as the [spoiler] near the end, and finally the [spoiler].

The Chase: My other less classic game with procedural level generation!

In The Chase (above), trees are randomly placed in such a way that a player can always walk past those trees, with a gap guaranteed somewhere near the gap in the previous column of trees.

Obviously - the universe generation in No Man's Sky is way more complicated, but you can see the basics of how it might work.

Let's Build A Golf Course!

I've taken lots of shortcuts. My golf course generation algorithm in no way replicates the thought process of an actual human golf course designer. Instead, I looked at the output I wanted to get, and thought through the process of how I might get something that was similar.

The end results

So you can see where we're getting to - below are some examples of the kinda of courses that I'm able to generate.

A procedural golf course.

Yup. That's a golf course. Some dangerous water though.

Guess What: It's a golf course!

The Broad Process

Broadly speaking, this is how Golf, The RPG generates a golf course:

Plant some vegetation

Lay the basic shape of some holes over the course

Figure out the order of the holes

Fit some water in, if possible

Do the low level detail of the holes

Step 1. Planting Vegetation

Planting vegetation is a super simple step. I'm even willing to share the entire source code for it. (But... it should be noted... it's entirely possible I'll share the rest of the source later anyway)

If you don't read C++, it's pretty simple: Place some rough everywhere, and then randomly place vegetation, shrubs, trees, bigger trees and smaller trees. That's it. We're starting with an unmolested block of empty land: Just a like a real golf course!

So - we've so far got the whole level looking something like:

Next

Next article - I'll be looking at how I do the broad layout of the holes.

Tuesday, 1 March 2016

Been a small age since my last post - almost a year! Unfortunately, it turns out full time programming makes extra home programming a bit more struggling.

Nonetheless - I've persevered, and thought I might show off some of what I've been working on. Some time back, I made a prototype of a game called 'Roundspace' (blog, download from itch.io).

After some encouragement from LinuxFanatic (who shall remain anonymous), I've decided to put a bit more work into it.

So - I've recreated the base game in C++, and am adding a bunch of variations to the same concept. The idea is to recreate a classical music style 'Theme And Variations' - with the basic theme, and a bunch of small gameplay changes that create unique experiences. The benefit of recreating it in C++ is that (with LinuxFanatic's assistance) - we're able to port to mobile devices. The one button mechanics and extremely quick games means that it should be perfect to play 'on the go'.

I've also varied the base mechanics a little. The original version had the 'outer border' shrinking at a consistent speed, where the new one speeds up on each 'bullet' released (to prevent just tapping incessantly) and awards more points where larger bullets hit the target in the middle.

Some screenshots of it (as it currently is) are below. Not available just yet, with a fair bit more work to do. No guarantee this is reflective of how it will look when it's finished. These vary in size a bit - as (with mobile being a target) - scaling is a necessity and was being tested.

Monday, 9 March 2015

Day 1 issues sorted - I got some nice serious coding done today. Most of it is still framework. I primarily focussed on the framework around maps, and a basic implementation of the main menu (as the Roguelike Radio on 7DRL's suggested that a good interface, and not quitting when you die is helpful). I have also got the first drawing things done.

Screenshot of current progress

As you can see from the screenshot above, I am making a graphical roguelike. I've got a collaborator and partner in Wade Dyer of Design Ministries and designer of Fragged Empire (which is a pen and paper RPG you should totally check out). At this time, Wade is assisting in design, creating a theme and (most importantly to me at least) - creating graphics.

Sunday, 8 March 2015

I ended up with way bigger issues with a development environment then I expected - so my 168 hours doesn't really start until about 10PM AEST. I eventually got Pygame working in Python 3.4. I did also attempt with Cocos but concluded that it was too foreign to me (in all guises) to work on a 'rapid' prototype, and that I couldn't get my computer to make a nice deployment to a windows binary (from JS). I also looked at MonoGame, but had issues with the content pipeline.

I've so far got the (significant) beginnings of my framework. It turns out that having actual experience in a language makes it a lot easier to write tidy code in it! So far, I've got the basis of my state machine, a file/data/asset manager and my PyGame boilerplate down. I've also confirmed that I can deploy it to an exe. I was hoping to get further along tonight - but got held back.

I feel that I'm laying a good foundation that's going to make my code easier to work with as this project goes on.

Friday, 2 January 2015

This is the long-delayed final part of my discussion on PAXAus. Find part 1 here and part 2 here.

I've been putting off writing the final part of my discussion on PAX, because (to me at least) it is the most important section, and I wanted to do it justice.

It sounds so very cliche, but I think the major thing that PAX brings to the table is the culture and atmosphere. It is no mere trade show for exhibitors to show off their wares to potential customers, or convention you attend to hear the keynote speakers but is instead a place that celebrates games and gamers of all sorts. One of the first things you see as you enter is that gigantic green sign (pictured above) that proclaims 'Welcome Home'.

In order to spread the awesomeness around the article, I've punctuated the article with photographs of some of the fantastic cosplayers who appeared at PAX. I've linked to their respective pages/portfolios and a highly recommend you check them out.

The current weekend that PAX is on is one of the biggest horse racing weekends in Melbourne. On the Saturday, the AAMI Victoria Darby Day was on. Inside the convention centre, I had rounds of Pokemon with people I'd never met, I had board games with people I never otherwise would meet, I attended a lecture on making video games all by your lonesome, met passionate and fantastic cosplayers (more on that later) and I had long conversations with indie game developers about the engines they were using. Once outside, my kinsmen, my brothers and sisters of the gaming fraternity marching as a disorganised huddled mass towards Flinders St stations were accosted and teased by a small group of drunken racegoers. I don't think think that the contrast could have been any more severe.

I don't know how PAX manages to so successfully cultivate that atmosphere - and can't, by virtue of only having attended Melbourne's PAX, compare how much that atmosphere can be attributed to Melbourne's culture and increasing status as a videogame development superhub. I do have some observations that might at least paint some of a light on why PAX can so proudly and honestly proclaim 'Welcome Home' to gamers of every sort.

Firstly, I suspect that a lot of it can be attributed to the culture that goes with being a Penny Arcade event and being run by gamers for gamers. Mike and Jerry's original idea was to make the convention that they would want to go to. This influences everything from how the rules are written and enforced, to how exhibitors are treated, to the talks that are chosen, and to the evening events that are run.

Secondly, I think that it is helped somewhat by the general atmosphere of respect that PAX seeks to foster - for instance, by requiring that exhibitors refrain from using booth babes. 5 of the 6 PAX commandments (don't steal, don't punch or kick people, no cheating, don't harass anyone, don't mess with things that aren't your) directly relate to respecting other participants and exhibitors. It comes back to being a place where gamers can celebrate that part of their identity..

Thirdly, I think that the effect of having huge areas dedicated to actually playing games with other people can't be underestimated. They are areas that could easily be sold as more floor space, but instead a third of the available space is full of consoles (with libraries of games accessible to everybody), vintage consoles, gaming tournaments, collectible card game areas, board gaming areas (again, with a huge library available to everybody). In the board gaming areas, there are signs to borrow which essentially say 'We're looking for players!' and 'I want to play this game... can you teach me?'.

As an aside, the tournaments are a lot of fun. I joined in the Marvel v Capcom 3 tournament on the second day... and had my posterior handed do me on a plate. I knew I was doomed from the moment that my first opponent plugged in his own fightstick. For those outside fighting game circles - a fightstick basically an arcade style joystick and buttons that most pros use to play fighting games. Even losing was a pleasure - the guy I played was a good sport, and was happy to not take it too seriously. My opponent juggled me in ways I did not realise were possible.

I also had a chance to finally get my first ever win of any Pokemon game against a human being. One of the areas set up is a large bean bag and power charger area for playing handheld consoles. I went into my copy of Pokemon X, found a person who had a similar amount of hours played as I did and sent them a challenge. I figured out after not long that they were sitting across from me and we had a friendly discussion of the match as it was going. And did I mention that I won?

We were sitting down playing a game with podcasters I hadn't met or indeed heard of before when one of them mentioned that awesome new RPG that just got Kickstarted 'Fragged Empire' by my friend Wade Dyer and wondered whether he was attending the show. Unknown to them, he'd just sat down at their table minutes earlier. The setup of PAX encourages these anarchical kinds of interactions with strangers in a way that I know nothing else that does.

Some photos are just too brilliant not to share. A gender bent Misty (as portrayed by Zeek) carrying Raven's Lara Croft. Somebody make this game!

I want to take this opportunity to point out that the cosplayers were really fantastic. If cosplay is a foreign concept to you, it's essentially dressing up as a character. They might be from a movie, or a cartoon, or a game, or a comic, or pretty much anything else. Raven Mad, Zeek, Peter "Putty" Davis, Hollow Society and Steph Elkington (who are pictured on this page) all did fantastic jobs and were kind enough to allow me to use the photos of them that are on the page. Again, I highly recommend that you check them all out. I was also excited to see some other fantastic cosplays - such as a brilliant Manuel Calivera (from Grim Fandango), a cloud of Batmen (but not a single Superman!), TF2 and Borderlands characters.

Speaking to the cosplayers is fantastic and gives some glimpse of the amount of work they went to to get their costumes made and put together. Most from what I saw made almost everything themselves. There is real and genuine skill in managing to put together costumes like these cosplayers do. I'm actually a little tempted to join their ranks for 2015.

As cool as the cosplay is, to me it primarily reinforces to me that this gaming isn't just a hobby that you do behind your door, in front of your computer, on a table, or on a couch. The effort cosplayers go to demonstrates a real passion for the subject matter and shows it off in a very bold and unflinching manner. Perhaps one of the good things about PAX is that people can feel safe and secure enough to be actually willing to do it.

This year, when PAX finished, I was left feeling almost like I used to when after waiting for months my birthday had finally come and gone. I was richer for having gone, excited for the news that it's back for the next 5 years but a little empty and melancholy for it having finished.

I think that one of the most fascinating experiments is writing a twitter biography. You have 140 characters to define who you think you are. At present, mine reads thus:

I have fellowship with other Christians and worship at church every Sunday night. I have worked as a lawyer, and will work as a lawyer again, keep up with law and participate in legal events. I play my various instruments at church and (albeit) occasionally at other venues with other musicians, and attend other gigs on an almost semi regular basis. I have a regular golfing partner, and go out and hit rounds that are deserving of my terrible, but enthusiastic status with a gigantic grin.

But - Games scholar (thank Jas Purewal over at Gamer/Law for that term), Nerd and Programmer? I have friends who I talk to and with whom I participate in gaming, nerdy or programming activities, but they are (for me at least) largely private affairs carried out on a table or behind a monitor by myself or with a small group of friends. It is such joy to go to an event, with so many people, and be surrounded by people who are like me - who share this part of their identity with me. It is such a pleasure to go to a place where gaming and gamers are not merely tolerated but celebrated.

Without exaggeration, I feel that PAX is pretty special and I feel absolutely blessed that there is one in my home city.

Bring on 2015!

FYI - As of the time of writing, PAX Aus tickets for 2015 are still available at http://aus.paxsite.com/registration.

Sunday, 7 December 2014

Edit: New version has been released - go to https://github.com/lkingsford/AtlasWarriors/releases/tag/alpha-009 for information

Alpha 8 of Atlas Warriors has been released
Since Alpha 3, there have been a whole bunch of new bug fixes. There is also another new tutorial message (for when you are in flames). There is also a new AI for Healers that will prevent crashes later on in the game.

Thursday, 13 November 2014

So - in addition to spending time seeing panels at PAX Australia, I spent a fair bit of time playing and watching various newly released and yet to be released games.

I particularly spent a fair bit of time in the extensive indie area getting to try Australian and New Zealand made indie games. It was fantastic to be able to meet indie developers - particularly those from Melbourne. As with last year, I've been struck by just how vow vibrant the indie games development community is in Melbourne.

I also had the opportunity to try a couple of new release AAA titles, and one particularly special (to me) pre-release.

Slightly off-topic - I was also struct by just how strong the Unity engine is in indie development. I knew it was strong - but I thought that the new pricing model for the Unreal Engine would have lead to more indies using it. In hindsight, I suspect that there hasn't been enough time since the pricing change, and that the Unreal engine might have a bigger showing next year.

So - following is a very brief (generally coinciding with my play time) impression of some of the things that I've played. Not everything here is by indies - but the list is heavily skewed that way

Just as a forewarning - this isn't going to critically examine and review the games I list. This is going to be a brief selection of some of the things I thought were cool, and that I think that you should check out.

Note: Release statuses are as of 12/11/2014.

Defect: the Spaceship Destruction Kit

Defect: Starship Destruction Kit (DefectSDK) is one of those games that just seems really cool. The essence of the game is you design a starship from pieces, and then run off fighting bad guys. But then (inevitably) your crew turns on you - hence requiring you to create yourself a shiny new starship to fight your very well designed previous command - which was hopefully the subject of a well designed flaw for you to exploit. And so on, and so forth.

The guys who made it were kind of inspired by Gratuitous Space Battles (GSB) by Positech Games, and it shows. I vaguely remember Cliffski of Positech talking about the requests for a 'direct control' mode in GSB to allow you to control the ships directly rather then setting the stage for the titular gratuitous space battle. This is that game. DefectSDK shares GSB's fluid zoom and fantastic prerendered/drawn 2D artwork.

If you're a fan of Star Trek, Star Wars or the like, you should definitely check this out.

Under the Sun

It is fantastic to be able to go to an event like PAX and find a former classmate from High School exhibiting their soon to be released wears. Stegabyte was formed by a two man team of Tim Glew and Alex Tulloh; the latter of whom remains one of my two favourite drummers to play with (despite not having done so for a good 8 years).

Under the Sun is a self-branded '4D Puzzle Game'. The goal is to guide the protagonist to the campfire before the day is out. Each turn, the world changes both independently (such as trees growing) and in reaction to your movements. The world changing can result in being unable to make the campfire in time, and therefore the death (by old age) of the character. Fortunately, Stegabyte have made it simple to move forward and backward in time to resolve past mistakes and observe the changing world.

The artwork is fantastic, slightly dreamlike and very clear (being important in a puzzle game). The puzzles themselves are clever and ran the gamut from easy to more difficult then I could complete in the time I had. My understanding is that is to be released on Windows, iOS and Android.

Screen Cheat

This has already been released, so you might already know something about it. I was fortunate enough to have a couple of rounds with friends and strangers.

(Cue annoying infomercial voice)
Have you ever been told off for looking at the other players screens when playing Goldeney or Perfect Dark?
Have you been accused of playing unfairly, maybe even cheating?
Have you had your defense that 'everybody can do it!' and potentially your argument over the prisoners dilemma thrown out without a consideration?

If so, Screencheat is for you and your friends!(Yeah - that's enough of that)
So - the concept of Screencheat is that it's a first person shooter where all of the players are invisible. You must look at the other players screens to be able to discern their location, in order to pulverize them with projectiles. It's a fantastic concept, and very well executed.

The levels are really well designed for this specific game. They are divided with very clear coloured sections so even an amateur can get a rough idea of where another player is looking, or at the very least whether they are in the same room. I see this becoming a really competitive game when you know the layouts of the level.

Coming from a traditional FPS paradigm, it is fairly difficult to be able to hit other players. It is still difficult to figure out exactly where somebody is as opposed to where they are looking. However, the hit-boxes seem wide enough to accommodate the gameplay.

This is a good concept, well executed. I really hope that they'll be selling cosmetic DLC for the characters.

Rogue Singularity

I didn't get around to actually playing Rogue Singularity but I spoke for some time to the developer and watched a bit of it being played. So I can't really comment on the gameplay beyond the obvious (that it's a 3rd person platforming game). The platforming looks clean and fluid with a double jump mechanic.

The reason I'm interested is because (like most games bearing the name 'Rogue') it is procedurally generated. Each level you play will be created by the computer - much like in Atlas Warriors. Unlike Atlas Warriors, this looks fantastic and generates really interesting 3D levels.

It also looks really, really good. The Skyboxes are a very high quality and look fantastic. The levels themselves look clean and good.

I'm interested to see how this ones turns out.

Crawl

I didn't get a chance to play Crawl at PAX (although it was there) but I heard lots of people talking about it - including one friend who has purchased himself a copy. It has been described by the developer as a dungeon crawler where your friends become the monsters,

At any time, one of the players is controlling a hero, whilst the other players try to kill them. When they do, that player become the hero. The other players control ghosts that can effect the world, either directly (by producing weird ectoplasm blob balls), by inhabiting deadly traps or by incarnating as monsters. At the end of each level, the players get to u

pgrade their monsters. The hero can use the gold they gain by killing to purchase new weapons and spells to attack the monsters.

The ultimate goal is for a player to get above level 10 (as a hero) and go through a portal to fight a boss monster (again, controlled by the other players). At the moment, there is only one boss monster - but this will be improved soon.

All this wrapped up with some procedural generation of levels and really cool pixel art and retro styled graphics.

It is currently $9.99 on Steam, and a lot of fun for some local multiplayer action. I recommend you give it a look.

Appointment with Fear

Again, I didn't get the chance to play this at PAX, but I was fortunate enough to get steam code for it (and have subsequently purchased the Android version).

I really wish that I knew how to define Appointment with FEAR as it seems to defy genre. It is somewhat like interactive fiction with a fantastic silver-age of comics theme (with the fantastic spinny Batman style animation between some dialogues!).

You follow the hero from a second person point of view ('You ... ') being told what's happening. You then get given a list of options you can take. You work Titan City as a hero, collecting clues and stopping crimes whilst trying to hold a day job as a reporter.

The combat works well and consistently for the style of game. The artwork is charming and exceedingly well drawn (as you can see from the screenshots). The writing is excellent.

It's not a huge investments ($5.99 on Steam, $2.99 on Android/iOS). I've already recommended it to one superhero loving friend, and I'll probably recommend it to some more. I will note that it feels better on the tablet with touch screen controls then on the Desktop - so I particularly recommend the Android version.

Sentinel Tactics: The Flame of Freedom

This is the only board game to make this list. I spent more time checking out new video games then board games (although I played a couple of other board games with friends while there). I was keen to try this, as I am already a fan of the Sentinels of the Multiverse. For clarity, I'll refer to the two games as Tactics and Multiverse.

I played Multiverse at PAXAus last year, and promptly went out and ordered myself a copy, and now have all the expansions so far released. Multiverse is a cooperative silver-age of comic books themed card game where you play the Sentinels against a variety of villains in a variety of settings. The heroes, villains and settings all belong to a fictional comic Multiverse inspired very closely by DC and Marvel heroes, villains and settings. The cards have fantastic drawn art and quotations from the fictional comic books. One of the few characteristics that makes it feel different to most superhero games is that you always feel like you're on the back foot, and every fight could be won or lost right until the end.

Sentinels Tactics manages to take a similar feel and turn it into a tactical board game. There are fairly simple rules (like Multiverse) and cards and heroes that allow you to tactically and strategically bend those rules (again, like Multiverse). Unlike Multiverse, the PvP elements reward knowing the actions that your enemy may take a lot more. The PvP elements also mean that you must consider the actions of the other players rather then merely the chance of a horrific villain card coming up. The board game elements also add an element of location that distinguishes it from the card games and means that some heroes (particularly the Flash analogue - Tachyon) actually feel like their powers feel different to the other heroes.

If you're a board gamey or superhero fan, this is worth giving a look - particularly if you're a fan of the original card game.

Mortal Kombat

So - more disklosures: I've loved Mortal Kombat for a really long time (as can be evidenced by my kopy of Mortal Kombat II for the SNES, piktured on this years PAX scarf below).

My own beloved kopy of Mortal Kombat II for SNES

So - the chance to play a brand new Mortal Kombat game, 6 or so months before release was absolutely fantastik for me.

I'd like to take a brief moment to talk about how major Mortal Kombat been shown at PAXAus, before release is. The last Mortal Kombat game (which, for the record had fantastic kombat, and awful plot) was only released in Australia last year due to having been blocked from the Australian market entirely due to Australia lacking an R rating. That has all changed, and that is fantastik.

Mortal Kombat is an interesting beast. It has always distinguished itself to the publik from its kounterparts (most notably Street Fighter) by being a lot gorier and bloodier. To me, it distinguishes itself from its kounterparts (again, most notably Street Fighter) by the fluidness and ease of its kombat. Where games like Street Fighter make the very act of performing a highler level move diffikult, Mortal Kombat makes it easy to do the moves but still requires timing and strategy as to when, and how to block them.

I only had one fight (Sub-zero -v- Raiden) but learnt enough to say that the kombat looks and feels fantastic. The combat with sword type attacks feel a little more visceral then they did in 9. I'm glad to see the returns of 9's fantastic x-ray moves. Unfortunately, I didn't get a chance to see any Fatalities, but they're already on YouTube.

I wish I had a bit longer to get more impressions and more detailed information, but what I had leaves me really excited for X.

Sunset Overdrive

Unfortunately, I only had a single game of Sunset Overdrive but it was a lot of fun. It's essentially a third person coop arena shooter against waves (kinda like Mann v Machine in Team Fortress 2). It's got very cool Bioshock Infinitesque movement along sky cables/power cabled. It's got good fluid combat with a wide variety of guns with very different effects.

It looks good, and feels good. But honestly - it won't (by itself) sell me on getting an Xbox One.

So - that's it for Part 2 on my series on PAX. Part 3 will be coming soon, and will have a conversation about what else I managed to do at PAX and why I think that PAX is so important, and why I was so sad for it to be finished.

Feel welcome to share any views on anything you played or the games I've discussed in the comments below.