Developing a 2d point and click adventure game

Welcome to our first message on groebelsloot.com!

Groebelsloot is made up of two guys: both software engineering drones by day – slaving away for our bosses – and starry-eyed wannabe game developers by night.
With this blog right here we want to share our ongoing experiences of building a classic 2d point and click adventure game, addressing technical details, story writing, puzzle design and whatever else is worth mentioning.

Why this kind of game? Growing up in the eighties and nineties we, like many of our friends, loved the classic adventure games: Maniac Mansion, Monkey Island, Indiana Jones, Legend of Kyrandia, Broken Sword, etc.
For a loooong time wanted to develop such a game ourselves, but because of a string of boring non-adventure game related silly live events, we never did.

Finally the stars have aligned and we got started.

In this first post we want to go into the basic setup and approach of our 2d point and click adventure game.
In subsequent posts we want to go into much technical detail describing how we went about the realization of the various aspects of game programming. Code examples will be provided as well.

We like to think that even though the game we are building may never be finished or published at all, we want to learn something along the way and like to share and discuss it all with whoever is interested.

Alright let’s start with it then!
The game we are developing is inspired mostly on the Lucas Arts adventures like Monkey Island and Day of the tentacle. It’s also no secret (or surprise) that we are eagerly following the exciting Thimbleweed Park project and have religiously followed the Broken Age documentary.
monkeyisland2dayofthetentacle

Defineth ye premise

A 2d point and click adventure game can be defined as a story-driven puzzle game where the player visually interacts in the game world. Since we like to do everything ourselves we both write the story and build the game engine ourselves.
If we ‘just’ wanted to make a game we could have used an existing engine for it. There are several good engines/tools to create adventure games like Adventure Game Studio, Visionaire Studio – the Adventure Game Creator, Sludge or Advendure Creator, a plugin for Unity.

Before building our own engine we need to define our requirements. What features do we want in the game?
We want the game to have:

  • 2d graphics (possibly pixel art. but maybe not)
  • Multiple scenes/rooms
  • Loading and saving without checkpoints
  • Interactive dialogues
  • Multi platform (Windows, Mac OS, Linux, iOS and Android)
  • Interaction using verbs (look at, use, talk to, etc)
  • Cutscenes

With these (minimal) requirements in mind we designed a game engine, picked a programming language, chose a framework and started writing and developing: the start of a very fun and interesting experience – ever imagining we were working on this back in the pioneering days.

Next up: we will cover the design of the engine and the chosen tech-stack.
Later posts will cover several other aspects like pathfinding, stories and puzzle design, inventory, dialogues, loading and saving, animating, cutscenes, Lua integration, game editor and other useful topics we like to share.

Hey we demand visuals! Whoops! Almost said goodbye without showing some example footage of our game engine in action (work in progress):
trog_gameplay1
Disclaimer:
Because we have no artist in our team (yet), all art is either programmer-art (all static backgrounds and sprites)  or animated sprites we temporarily “borrowed” in fair use.

Leave a Reply