Double You

What is this?

Well, I wrote a play, which will hopefully premiere early next year, though it’s hard to tell these days. Over a year ago I was asked if I could make a computer game as a tie-in, an idea I immediately dismissed as requiring way too much effort and skills I don’t really have. As soon as I got home that day I started working on this.

It’s actually based on a single improvised RPG session we played as a way to get into the characters. The story was a decidedly non-canon prequel involving characters who should not know each other (or have any cause to join forces) working together… mostly. But it was a lot of fun, and I took it as inspiration for this project. My upcoming play - cyberpunk by genre - is simply titled “Ex”, since I figured after “Deus Ex” and “Ex Machina”, some story should just go by Ex. Given that this is a prequel, I chose the name “Double You”, which means any potential sequel will have to be called “Why?!”.

So what kind of game is this?

Platformer, in essence, inspired by some of my favourites. The main flavour comes from The Lost Vikings - you will be controlling four characters with different abilities, switching freely between them, to find your way through the levels. More on them later.

Since I wanted to eventually get the rest of my friends from the theatre group to help out, I’ve locked myself into this kinda photorealistic look. Right now all graphics are placeholders. Character sprites are all just me in different clothes, ranging from 80 to 195 pictures each - and I’m planning to use maybe double that in the final version, to make the animations extra smooth. Hopefully I’ll be able to offload some of that work to other people.

What do you hope to achive with this?

Believe it or not, I’ve already exceeded my plans, that is learn more about Defold and game development in general and have fun doing it. Anything else is extra. The next step is produce something that can be called a finished game, something I’m not very good at, and produce a good game, which is entirely optional and frankly up to the fate to decide.

Given that the game cannot be finalised until we’ve finished creating all the costumes and props for the play, something which usually happens a few hours before the premiere, it’s impossible for this to actually be finished on time (just processing the sprites is going to take weeks, I wager), which is nice, since it takes a lot of pressure off me. I would love to have a playable version before our last reprise. We’ll see. In any case, we’ll be sending copies of the game to our loyal fans whenever it’s ready.

Then, if the game feels like it has potential, I’ll start thinking about cleaning it up, expanding it and maybe looking into getting it on Steam. But that’s so far in the future I just can’t think about it yet. One step at a time.

The demo

Recently I’ve been working on finalising gameplay with each of the four characters, releasing a demo showcasing each of them. Today I finished the last one, and since I implemented language switching in the meantime (the game is in Czech by default), I decided to share it here. Each of the levels has tutorial texts explaining all controls and game mechanics in details, but the gist is that WSAD controls movement, E or right mouse button to use, spacebar for special actions, left click for attack, if available. Mouse wheel, page up/down or numpad +/- can be used to zoom in and out. The characters are as follows, in the order I created the levels:

  • Claudia
    - Fast, nimble, melee-specialist
    - Can jump, duck and climb through vents to reach areas others can’t
    - Can easily defeat single enemies, especially if she can get the drop on them
    - The only character whose movement is based on acceleration and friction

  • Emmett
    - A powerful but slow cyborg
    - Various weapons to make minced meat out of enemies or open up new passages with explosives
    - Tanky and with recharching shields
    - Resistance to environmental damage means he can get where others can’t
    - Slow and cumbersome movement based on full steps and slow turning is balanced by being able to aim (and shoot) anywhere

  • Agatha
    - Can hack security consoles and rewire connections on objects to open new ways
    - The hacking system was heavily inspired by the game Gunpoint. Should provide opportunities for interesting puzzles and even some bits of emergent gameplay. For example, if you wire together two elevator floors in the demo and then ride it to one of them, the elevator will get stuck in a loop. Not something I planned (or particularly useful) but definitely cool.
    - The hack mode currently tanks performance a bit if you’re on a weaker machine, sorry about that.

  • Jack
    - Cyberspace expert
    - The character I will play in the theatre version, so this placeholder is a tiny bit closer to the real deal
    - Weak, slow, but the only one who can enter the very cool 2.5D cyberspace
    - I kinda went all-out on the coolness factor with the completely different gameplay for this one. For the longest time I had no idea how to represent his abilities (from my play) in gameplay, so I went with this. Still, the character can be summed up as “can basically just flip switches nobody else can, if you go through an unrelated mini-game first”. I can see his contribution to most levels being mostly just someone to escort to cyberjacks so he can open passsage, so I’m hoping to make the cyberspace sections fun enough that the players won’t mind it.
    - One saving grace is that I can place screens showing the game world in cyberspace, so at least he can be given a sort of scouting role, “the man in the van” kinda deal. We’ll see.

If any of the levels give you a hard time, there’s a couple of cheat codes to make it easier on you. Just write the following:

IDDQD - all characters become invulnerable to damage
IDKFA - Emmett gets infinite ammo to all weapons
HACKERMAN - Agatha gains all security authorisations
LAWNMOWERMAN - Jack becomes invulnerable to damage in cyberspace

That’s about it.

Link to a demo (Windows only)

If you don’t want to run random files from the internet, you can just check out this video walkthrough. It might also come in handy if you get stuck.

What’s next?

Y̶o̶u̶ ̶m̶a̶y̶ ̶n̶o̶t̶i̶c̶e̶ ̶t̶h̶e̶ ̶i̶n̶a̶c̶t̶i̶v̶e̶ ̶"̶D̶e̶m̶o̶ ̶c̶o̶o̶p̶"̶ ̶b̶u̶t̶t̶o̶n̶ ̶i̶n̶ ̶t̶h̶e̶ ̶m̶a̶i̶n̶ ̶m̶e̶n̶u̶.̶ ̶I̶ ̶w̶a̶n̶t̶ ̶t̶o̶ ̶m̶a̶k̶e̶ ̶y̶e̶t̶ ̶a̶n̶o̶t̶h̶e̶r̶ ̶s̶h̶o̶r̶t̶ ̶d̶e̶m̶o̶ ̶l̶e̶v̶e̶l̶ ̶t̶o̶ ̶s̶h̶o̶w̶c̶a̶s̶e̶ ̶t̶h̶e̶ ̶t̶r̶u̶e̶ ̶g̶a̶m̶e̶p̶l̶a̶y̶,̶ ̶w̶h̶e̶r̶e̶ ̶y̶o̶u̶ ̶c̶a̶n̶ ̶s̶w̶i̶t̶c̶h̶ ̶b̶e̶t̶w̶e̶e̶n̶ ̶c̶h̶a̶r̶a̶c̶t̶e̶r̶s̶. (edit: the coop level described in the post below is now part of the demo linked above) It’s going to be a good opportunity to iron out some bugs specific to character switching and hone my level design skills some more. I don’t expect either of the five demo levels to make an appearance in the final game - at least not without some modifications - but it’s great practice.

After that, I’ll want to make a short chain of multiple levels, in doing so implement a campaign system, which should include spending money found on the levels for upgrades. And then it’s time to think hard about the story (I’m gonna need another tabletop session for that), plan out the levels, figure out what kinds of environments I’m going to need (those few placeholder textures I’m using now are starting to get on my nerves) and… well. Start making the game. I’ll let you know how it goes.

Oh, hi there! You have wisely decided to skip all of my ramblings. Good job! The link to the demo is about three paragraphs up. Cheers!

14 Likes

Edit: “4 MONTHS LATER”. There goes my resolution to post regular updates =/

So, what I wanted to focus on next was to make a level which would utilise the abilities of all four characters and offer some degree of freedom to which parts to tackle when and using which character. I ran into some issues mostly related to some questionable but unavoidable design decisions, so instead I’ve been making some much needed background changes:

  • Added support for multi-map “campaign” with text briefings
  • Reworked the main menu, including a whole new upgrade screen and saving of game setting across different sessions
  • Standardised how weapon data is stored (including melee attacks) so it’s way easier to work with
  • Rewrote my code for sound (each sound instance no longer has a separate script attached. Yay!) and gave enemies the ability to hear certain actions.
  • In-game UI now shows the portraits and HP of all characters
  • Other various fixes which also improved performance, significantly in some instances

Meanwhile I’ve been struggling to get myself in the right frame of mind to overcome the map design challenges I foresee in my future, so I decided to write them all down here in this post in the hopes that it will help me. But… a few days ago I just gave it a go, made a pretty solid beginning of the co-op level I wanted and it kinda feels great to play it! It could be I was worrying for nothing, really. I’m sure there will be challenges for me still, but I’ve finally ditched the defeatist attitude and started hacking at it.
But I might as well finish writing this post since I already started. At least it will be on a more positive note.


Issue #1: Characters and their attributes

My goal was to give each character at least one way to move where other characters can’t as well as a unique way to open passage for the others. Emmett the cyborg can pass through hazardous environment and blast open weak walls and doors. Claudia can fit through small crawlspaces, jump to reach other places and kick down weaker doors. Both can also kill enemies who would block the path for the non-combat characters.

I failed at this with the other two characters, who can only open up path by using switches not accessible to the others. Neither of them can reach a place where any other character couldn’t simply follow them. I fear this might lead to these characters being a bit of a dead weight, only moving forward when the level presents the player with a problem they are uniquely equipped to deal with, rather than encouraging finding new paths. I’m still considering giving them other abilities, but I’m not sure if I’ll be able to come up with something good, given that I want to stick to what the lore dictates.

Additionally, from initial testing, it feels like four is really a too large number to switch between. Two characters are easy. Three can be cycled really fast. With four, you’d better learn the shortcuts and know exactly who does what. Easy for me, but could be a stumbling block for other players. On top of that, it makes designing levels that much harder since I need to give each character something to do. Sure, parts of levels can be dominated by a single character. I can keep some characters “locked in a closet” until the star of the level lets them free and I could easily have levels featuring only a part of the team, but I’d like to avoid these solutions most of the time, since I’m going for some degree of freedom to how the player approaches each level and I don’t want players who dump all their money to upgrade a single character to be faced with a level where they can’t use it at all. Leading to…

Issue #2: Upgrades

Aside from being almost mandatory in a cyberpunk-themed game, I really like the idea of customising your team, improving your favourite characters and the sense of progression it brings.

Upgrades improving attack damage, damage protection or stagger time are fine - they make your life easier without changing the gameplay itself. There’s definitely going to be a bunch of them which will allow the player to bypass obstacles more easily though. Jump height, hack range or the ability to kick down stronger doors can change the way your team moves through the levels. Now, I can’t guarantee which upgrades will be unlocked at any given level and on principle I’d like the game to be beatable even without buying anything.

This presents a problem in terms of difficulty scaling. If the player has access to more and more upgrades as the game goes on but the levels need to be designed to be beatable without them, wouldn’t it make game easier rather than harder later on? My hope is that if a combination of upgrades allows you to bypass half of a lategame level, I’ll at least be able to make it not obvious, so it acts as a reward for figuring it out rather than the standard gameplay.

On the flip side, most levels need to present an opportunity to leverage all the various upgrades so that the player doesn’t feel like they wasted their money. As such, the final level absolutely needs to have parts where each and every upgrade has an opportunity to shine while still being possible to finish without any of them.

I’m very confident this can be solved with clever design and somewhat confident that I will be able to solve it with clever design, but it’s another thing to keep in mind.

Issue #3: Art design

Like I said, I’ve locked myself into this kinda photorealistic look, because the whole idea is that this will eventually turn into a fun group project after I lay down some groundwork. Which is what I’ve been doing for a year and a half… But I want both my friends and their amazing costumes (which don’t exist yet) to be clearly recognisable and so this is what I’m going with. Well, as you can imagine the graphics are heavy already. The good news is that I’m going to have to learn a lot about optimising everything at some point. This is a learning experience for me, so I can live with that. I could have gone with a stylized pixel art thing, which would frankly fit this kind of gameplay a lot more, would run a LOT faster and by now I’d have a lot of graphic assets ready, compared to literally nothing I have now. But I’ve never been the one to take the easy way out.

However, I’ve found that this style limits the level design to some degree. First of all, the characters are kinda tall. Sometimes it’s hard to tell what’s going on a level beneath the player. The camera needs some work. I have the ability to zoom in and out, but I don’t want the player to zoom out away from those beautiful and unreasonably large sprites. I want the game to be playable at the default zoom level most of the time. Being forced to zoom out a bit to see what’s going on is fine, but I’d hate it if the optimal way to play the game was to zoom out to max and keep it that way.

The other issue is that three out of four characters who can’t jump can only navigate the level geometry in a linear fashion. Consider this kind of staircase, something you might see in a typical platformer:

Jack here cannot choose not to go up the stairs and remain on the ground level. Once up the stairs, he can only move further right or return back to the lower level. Claudia could jump the gap, but then again, do I want my levels to look like this given the otherwise realistic graphics? Nah. So far I’ve been solving this with ladders, staircases and elevators and it might be enough. I might add some teleporter pads in later levels, but it’s not meshing too well with the source material. This may not be the biggest deal, but I was surprised how I got blindsided by it.

While designing the demo levels, this wasn’t an issue at all, since they (being tutorials) were designed to be very linear. For the game itself though, I want the levels to be as non-linear as possible and so far I’ve found myself forced into a sort of “multi-floor building filled with samey corridors” design pattern which I’m not really happy with.

As an aside, I’ve noticed this being issue in Another World years ago when I first played. The game mostly goes around it through clever level design, being very linear and the general bizarre look of the game. But there are places like this:

The yellow arrows mark a teleporter-lift which you can use instead of the stairs which are otherwise right there.

So, that’s about it. Right now I’m steadily progressing with the co-op level and after that is done, I’d like to experiment a bit and design a level taking place on a moving train. Should be a good challenge to see how I can stay at least somewhat true to my design goals with a level that is by its very nature extremely linear. When I’m done with that, I guess I’ll share those levels with you here. Or maybe I’ll just post to talk about whatever lays heavy on my mind, like just now.

11 Likes

I’m finally more or less done designing the first cooperative level, and I think I’ve succeeded in my goals as noted in the previous post. It looks like this:


(Don’t mind the weird blackground - the game is not meant to be zoomed out this far)

The level consists of a large building and a small area below ground. The team starts split up, with the non-combat characters (Agatha and Jack) standing to the right at the locked front entrance and the bruisers (Claudia and Emmett) in the sewer with access to the back of the building.

The goal is the reach the rightmost underground area using an elevator on level 1 and access a cyberspace terminal with Jack to end the level. First floor is funny - the combat characters are faced with an indestructible door which is trivial to hack open, but that is not an option for them. Meanwhile the hackers are blocked from entering it by a flimsy wooden door which is not even locked, but it’s guarded. So the player needs to find a way for either team to cross through the building and clear the path so they can enter the elevator together.

There are multiple ways to do this. Emmett and Claudia can help each other navigate through the ground floor, alternating in clearing obstacles for the other one (see the video in my previous post). Or Claudia could go solo, sneaking to level 3 from the left side and, avoiding cameras, gain access to another elevator going through the right side of the building and rendez-vous with the hackers at the front desk.

Level 2 is packed with enemies and best avoided, but it’s possible to punch your way that way too, though definitely not recommended. However, Emmett can shoot easily fight his way through it should Jack succeed in lowering the fire escape ladder for him. He can do so if Agatha gets to level 3 from the right side, disconnecting the cameras Claudia would otherwise need to avoid (and the turrets they activate) and opens the way to a cyberspace terminal on level 4.

Level 4 also has a computer terminal where Agatha can gain extra security clearance. The room is blocked off in three different ways and this bonus terminal can only be reached if all four characters cooperate. It’s entirely optional, though, and indeed designed to be easily missed.

The final area accessed by the elevator on level 1 has a laser tripwire springing an ambush by three guards and an automatic turret - Emmett can deal with this, but it’s dangerous. If you don’t want to take any chances, Claudia can sneak in an silently take out one of the guards, Agatha can disable the turret and - if you managed to find and access the bonus terminal on level 4 - disable another guard as well as open a small closet with RPG ammo. At that point the ambush only consists of a single guard who is easily dispatched. The way to the exit is clear.


I’m very happy with how the level turned out, especially the floorplan which looks almost natural, even though I was initially just adding stuff without planning too much ahead. The design is compact, with two main vertical means of movement (ladder on the left and elevator on the right) giving the player some leeway in which way they want to approach each floor, and the rooms feel like they make sense whichever way you go, rather than being “ready” just in one direction.

Of course, the next step is to force some of my friends, relatives and especially coworkers to play through it themselves while silently watching them stumble. It might turn out that they’ll get hopelessly lost and/or stuck and I’ll have redesign large parts of the level, but until then I’ll enjoy the feeling of a job well done.

11 Likes

I really loved watching your walkthrough! Its awesome. I really like the different characters gameplay modes. Thanks for sharing, and I’ll have to give the demo a run now :slight_smile:

3 Likes

I’ve had almost zero progress since my last update and for a good reason - the play this is based on is going to premiere in three weeks and so there’s no time to mess around with this when I have more important things to do, like learning my lines and, uhhh… finishing the script. And creating a programme.

You know those booklet thingies you get in theatres with cast and credits and other fun or interesting stuff? Since this is cyberpunk, we decided to have an actual computer programme instead. Ideally we’d like to give out floppy disks with a QR code printed on them, pointing towards the app.

Anyway, the app is short and simple and made almost entirely using gui (except for a single sprite where I wanted to use some shader magic). It starts with a fake green console “loading” the program, then it requires you to disable some plugins not supported by your device (4D videos, AR implant support etc.) before finally “booting” into a simple interface with dates of a conference held by a corporation from the play (that is - the dates of the performances), a directory of important people (cast), credits (made with Defold!) and some other details, like a small window informing you that by using the app you’ve signed away all your rights to AkordCorp.

It’s all in Czech, and there’s no reason to translate it, but if you want to have a look anyway, here’s a html5 version.

Even better, the android version just got accepted on Google Play! The process was smooth and relatively easy. The hard part was waiting since Sunday, but I’ve done it. I think I’m a developer now =D

4 Likes

The screenshots are really really really making me want to play this. It has a great 1990s mocap type thing which reminds me of my youth, especially with the neon green, the mix of photorealistic with other elements, and the 3D stuff. But your link isn’t working!!!

2 Likes

Ah, I must have deleted the first demo at some point. I forgot I have it linked from here. I’ll reupload it tomorrow.

I went ahead and bundled the latest version with the coop level included. The previous single-character levels are available as tutorials.

I had to fix a couple of things that got broken while I was working on the coop level, and I might have missed something, but for the most part it looks fine. There’s an small issue with frustrum culling - some lights (and camera fields) tend to get culled while still on screen and sometimes causes some small glitches in the 3D sections, but it’s not a big deal.

1 Like

I’m on a mac!! But don’t worry too much. It’s just great to see other developers working on weird and unusual applications for Defold (i.e., a tie-in with a play).

1 Like

I’m happy to say that the play was a success! The audience loved both performances and they were very impressed by the companion app I made in a few weeks. I can’t wait to show them this game I’ve been making for a year and a half!

Now that the play is out of the way (we’ll reprise it sometime in autumn), I can again focus on this. I’ve decided to push out a very rough public demo as soon as possible, which means creating the (hopefully) final graphics of the main characters. We’re currently brainstorming looking for a good place to shoot the animations and considering greenscreen options, though that’s been put on hold for now, since half the people in the group came down with covid, myself included.

But we’ll get started as soon as we’re able, so I’ve been working hard to get everything else finished and fixed. Having dealt with some very annoying issues that’s been present in the game for way too long, I am now working on a second level, which should hopefully be ready sometime next week.

Anyway, here’s a preview of the amazing costumes that are going to be in the game:

Agatha and Jack (that’s me):

Claudia and Emmett:

Arkadij, who will be used as a generic bad guy model:

13 Likes

Looks absolutely fantastic!

Are you working any defold apps into the costumes? If you get a mobile phone on there you can use it (with Bluetooth) to trigger sound effects, etc!

1 Like

I had an idea to have the companion app people downloaded on entry check time and emit a fake ringtone just before the play starts, as a reminder for people to turn of their phones, but I decided to keep it simple and practice my lines instead =D

What we did have was tablets sewn into costumes.

The touch screen was working allowing Jack to browse different pictures of breasts on stage, as well as display a corporate logo, a loading screen and a CAPTCHA at different parts of the stage.

The girls also greeted the audience on entry before the play, giving out cookies and the programmes. They had the corporate logo on at the time. They told us that someone asked them if the tablets were swipeable, so they said go ahead and try, and the guest was mortified when the breasts came on =D

But that was just a simple image browser. Besides, all costumes were the work of my sister. I was doing other stuff.

Sorry to hear that you got Covid, but the play sounds like it was a success! It’s super cool that you not only made a companion app but are also working on this full tie-in game!

The costumes look great and I can’t wait to see how they look when you get them implemented. Best of luck on this project, it seems really awesome so far!

1 Like

I’ve just finished a second demo level, so I figured I’d write a bit about where I stand.

The next demo

I only just realised that for the first time I have a deadline ahead of me. We’re going to reprise the play (hopefully) in October, and I would love to have a public demo ready at that time. Thankfully I just finished the second of the two full levels I’m planning for it, so that’s enough game content for now. I still need to do a lot of touch-ups on all the levels, including the tutorials which might not all perfectly reflect the gameplay as it is right now.

Capturing, processing and implementing the final character graphics is obviously going to be a major pain, but at least I have people ready and willing to help out. There’s a whole bunch of little stuff waiting for that too - notably Claudia’s attacks will be reworked to fit with the new graphics, taking into account specific moments from the theatre play.

The new level

I knew I had to do a train level ever since I implemented a background with moving clouds and set the speed too high. It looks great!

Well, it didn’t end up as linear as I hoped/feared, since I ended up making the wagons quite large, but it mostly works. There’s a lot of options for progress, places where optional upgrades come into play and there should always be a way forward, no matter what you do. Of note is a small room which will shut its doors on whichever character decides to walk into it. Depending on which characters it is:

  • Jack can access cyberspace where he can both bypass a part of the level for the other characters and find authorisation for Agatha which allows her to get him out of the trap.
  • Claudia can escape the room using a vent which also allows her to trigger the aforementioned bypass as well as open an additional door.
  • Emmett isn’t particularly helpful to have there, but he can at least use the opportunity to safely dispose of two enemies you’d otherwise have to most likely fight head-on.
  • Agatha is just trapped. But the rest of the team can get her the authorisation she needs to escape at a later point.

I had a lot of fun designing the cyberspace portions of the level, which are represented as a tron-like 3D version of the train. I have started using some dumb hacks to make it looks better though, and it makes me think I might want to improve my 2.5D to be a little bit more 3D than it is now. I’ll make a post dedicated to that later, I think.

Another milestone!

Okay, this one is not a good thing. The game has become quite large and complex and the computer I have available at work is starting to struggle with it. It’s still quite playable - luckily the fact I spent half of the time working on this on a very low-end computer meant that I had to stop from time to time and focus on small optimisations - but the loading time of larger levels is getting unwieldly. Aside from that the scene view is getting way too sluggish and opening is best timed for when I need to get a coffee or something.

So lately I’ve decided to leave most work on the content and gameplay for when I’m at home and work on the much neglected main menu and gui in general. So now I have an improved level selection screen, nice scrolling credits, a new readable font in many places and other touch-ups I knew I had to do but was never willing to spend time on. I should bring headphones with me tomorrow so I can work on sound too.

4 Likes