Saturday, August 01, 2020

Wednesday, July 22, 2020

New Overblown Hero: Boomfist

The second hero to be added to Overblown is Boomfist.  Here he is in action:-



Overblown uses the Bullet physics engine for all its movement and collision.  The main problem I had with Boomfist was hist PowerPunch ability.  I originally tried applying a force to his centre, but due to the damping of the player's avatars (which is there to stop them sliding about too much) the force was initially too fast, andf slowed down too quickly.

My solution was to simply remove the dampening effect until the player's linear velocity dropped below a certain threshold, at which point it was re-applied.  I also used the player's linear velocity to check if they were in the middle of a punch when they hit another player (as opposed to simply walking into them).

I also created a new logo for the game:-


LibGDX 3D Camera lookAt() Problem

If you've ever used the method camera lookAt() method, you may have noticed that afterwards, your view of the (virtual) world is slightly off-kilter. 

For some reason, the methods alters the camera.up value, which should ideally be (0, 1, 0).

What is the solution?  Just manually set the direction yourself like so:-

tmpVector.set(targetPosition).sub(camera.position).nor();
player.camera.direction.set(tmpVector);
player.camera.update();
I've no idea why the lookAt() method does what it does.

Tuesday, July 14, 2020

New Gamedev Project: Overblown

In the interests of trying to get players to actually play my games, I've decided to start with an audience closer to home: my kids.  Their current obsession is Overwatch, so my new project is an Overwatch clone/parody called Overblown.  This will be split-screen multiplayer, and use a proper physics engine.  One of my aims was to have a properly destructive environment, something that even Overwatch doesn't have.

I decide to use LibGDX, basically cos it's pretty good, I know it most out of all the engines I've used, and I've got loads of old code I can re-use.

I've already created several split-screen games (like Chrono Cup), so I started off re-using this code.  The first thing I needed was a decent map, not the usual uninteresting flat space that I come up with.  For some reason, generic 3D map editors seem very rare, so I created my own:-



One of the hardest things about creating a map is getting the textures to look right.  it's very easy to fall into the trap of looking like an old 90's game with overly detailed textures on simple shapes.

Once I had the map, it was onto creating the characters.  I had loads of ideas for parodying the characters, and the first one that seemed ripe for copying was Pharah, or Phartah as she is called in this game:-




Once I came up with the name Phartah, the in-game jokes wrote themselves.

The next character is Boomfist.  I pretty much enjoy coding more than I enjoy playing games, and one of the fun aspects of this project was trying to recreate the Overwatch character's abilities in my own game.  The next challenge was Boomfist's PowerPunch ability....


Wednesday, May 06, 2020

Investigating WebVR and WebXR

After buying an Ocuus Go, it was only a mater of time before I started looking into the easiest way to develop my own games for it, and WebGL definitely seems the way to go.  Of course, this opens up the next question: what framework to use to implement WebGL?

Anyway, here's a few things I've learnt that might save other people a lot of time:-
 

Thursday, April 16, 2020

Announcing Chrono Cup - Quantum League Remake

I read about Quantum League just a few days ago, and it sounds like a really good game mechanic.  I've been looking to try and implement some kind of "time" mechanic in games for years, going all the way back to the 80's since I read about a game that the legend that is Julain Gollop wrote (the name escapes me now).

Anyway, after reading about Quantum League, and being between projects, I decided to see if I could re-purpose my split-screen FPS engine to implement the rewind and play effect.  It was quite a mental challenge, but here is the result:-



I've come up with the name Chrono Cup for it, until I think of something better.  And please ignore the simple placeholder graphics.  Hey, I've only been working on this for 2 days!

If you don't know how Quantum League works, basiecally you play an FPS-style game for 15 seconds.  Then time rewinds back to the start, and you do it again; however this time, a "ghost" plays out your actions from the first phase.  Then it rewinds for a 3rd time, and you have two "ghosts".

This may sound good albeit simple at first, but it potentially leads to lots of interesting twists, since (for example) the ghosts bullets still have an effect as long as the ghosts aren't killed.  So if you can kill a player/ghost who shot you the first time, you won't die, so your ghosts will be alive for longer in a later phase!

More coming soon....


Monday, April 06, 2020

Visual Studio is a bug-ridden pile of crap

Let's start a new project and add a class to it:-


Oh, we don't seem to have the option to add a class file to the project.  Maybe the project properties are wrong.  Let's have a look.


Oh, we get a nice error.  Looks like I'm not the only person with this problem.  You would have thought after all these years, Microsoft would be able to write a piece of software that wasn't bug-ridden crap.

And while we're on the subject, why does Paint not have an Edit menu, like every other normal program in the known universe?  And does MS SQL Server need pointless extra services to work, like Server Browser?

Thursday, March 12, 2020

Split-Screen Multiplayer Engine

So I've been developing a split-screen multiplayer FPS engine using LibGDX.  It can handle up to 4 players.

Since (like most hobby developers) I can lose interest in a single project very quickly, this project contains several different games.  The first game was a remake of the classic game 3D Monster Maze.  However, I'm also working on a game of Tag, a Tower Defence game, a driving game, an FTL-type game and several others.

Source is here: https://github.com/SteveSmith16384/splitscreenfps_libgdx

Early example video here (Monster Maze level): https://www.youtube.com/watch?v=hM-P-M--Or4&t=108s