• Advertisement
  • entries
    7
  • comments
    10
  • views
    528

Entries in this blog

Solo Dev Game Challenge

I've been considering creating a game from start to finish entirely solo, and posting all the progress on the blog here as I work my way through. :)  I really enjoyed working on the GameDev.Net Challenge and thought I could really push myself to make my own title within a certain period of time. I will still be doing the GameDev.Net Challenges as they popup as I really enjoy the idea of time challenges.

Most of my programming experience has been at a lower level (engines, toolkits, world builders, ect...) and I really would like to push myself to work on some of my own ideas in terms of full games.

I intend on doing all of the programming, graphics, and audio myself for this challenge, and will post all the progress on a regular basis as I develop!

On the programming side I will use C++ and SFML. For graphics I will be using a combination of 2D and 3D applications (Photoshop, Blender, ect...). The sound and music will be created using FL Studio and assorted VSTs. I will have to pull out my midi controllers and blow some dust off those nobs and keys!

The game itself will be a Collectible Card Game. I was working on one prior and have always wanted to go out and make my own. I have already come up with the concept, basic story, and how the cards will work together, but as the game grows changes will be made as I'm developing this organically.

In my next blog entry I will title it: (Name of Game) Dev Blog ##.

I look forward to this challenge, and cannot wait to get started! :) I should have a blog post ready to go within 5 days as I want to actually post content in each entry.

Thanks for reading. :D 

1.thumb.png.731a035deaefd26cd884d64f456e9587.png2.thumb.png.ed5c2a2b66200659ca9124e2b1d01545.png3.thumb.png.8137b75435ebb13ed324b4170d4a356f.png4.thumb.png.e01bd1c784378dc961e3a116a1f4816a.png

 

 

 

Hello everyone! Part 6 will be my final entry regarding the GameDev.net Challenge to complete a Pac-Man style game with a multiplayer component. Above you will see some screen shots, and a video of the game in action. I will also attach a copy for you to play.

The requirements to complete this challenge are as follows:

-------------------

Game Requirements

  • 2+ player board - Choose one or more games modes - local multiplayer, networked multiplayer, and/or AI players
  • Team play? Vs play? Both? You decide.
  • The game must have:
    • Start screen
    • Player selection
    • Score system for appropriate mode (winner in Vs mode or team total in Team mode)
    • Sound effects
    • Graphics representative and capturing the spirit of a Pac-man clone
    • One or more levels
  • Gameplay mechanics and mazes in the spirit of Pac-man - the game does not need to be an exact clone in graphics or gameplay, but it should demonstrate inspiration from Pac-man. The idea is to create multiplayer Pac-man gameplay.

Art Requirements

  • The game may be in 2D or 3D
  • Players must be clearly identified

Duration

February 2, 2018 to March 31, 2018 (expires when all world timezones are April 1)

-------------------

Background on what went into the creation of the game:

I created a solo play feature to use as the foundation in order to easily transition into a multiplayer version. The two player split screen is a slightly modified version of the solo play mode, but with two split views, and independent sprites and movement for each robot. I also added shared lives, and the aliens will split up to chase you.

The start screen has the two play modes - Solo, and Two Player. The score system is based on power orbs collected, and in Two Player mode all power orbs collected are collective for scoring. You will win the game by removing all power orbs from the map. You will lose if your lives hit 0. Solo play has 3 max lives, and Two Player has 4 shared lives. For the sound effects, I just added music which you can toggle, and a basic sound effect for power orb collection. The graphics are a bit different, but the Robot is the replacement of Pac-Man, the Aliens are the Ghosts, and the Power Orbs are the Pac-Dots, ect... There is only one level in this game to meet the requirement.

On the programming side I had to setup a gliding based movement system that has a queue for smoother movement (same system as Pac-Man). How this works is that you will move in the direction you've pressed until you hit a wall. The queue works like so: If you're moving right and you will have a bottom opening coming up, you can just press down once and release, then your Robot will auto move down and continue moving in the downward direction. This allows smoother movement because you would have to always be holding the keys to get smooth movement prior to directional change unless you're 100% accurate on input due to movement bounding box at 96x96, and all tiles are at 96x96 giving the maze like feel. I did a bit of an edit for the sprite bounding boxes as I'm not using 96x96, but the pixel size of the graphic less the transparency. The 96x96 is just used to direct movement through the maze evenly.

I also added in path finding for the aliens which is very optimized to reduce unnecessary checks.

For the Ice Block, I just programmed a quick class to handle animations by loading in frames with a set time per frame.

Beyond that, everything else is fairly standard for this 2D based maze game.

The game itself was programmed in C++ using SFML, and openAL for audio. I had to program interpolation to smooth out the graphics as I use fixed time step with variable rendering. I created all the graphics in 3D then converted to 2D, and slightly touched them up.

What I didn't get a chance to do, and would like to improve on:

Sadly one of the biggest problems when working on this game was the lack of time I could commit. I missed the deadline for the prior GameDev.net challenge and really had to push myself to commit this project to completion.

If I had more time I would improve on the graphics more, add in full animations to everything including directional movement. More sound and music. More levels. AI player mode. I also would have considered full 3D for this game.

I really need to start these much earlier. :) 

What struggles did I have?

The biggest struggle I had beyond time restrictions was a stupid issue with my openal32.dll file. I was including an older version, and not the one in the bin folder for the latest SFML release, so I had massive performance issues due to the wrong file. Took me a bit to figure out what was going on which all the threads exiting like wild fire, so I replaced the .dll file and problem solved.

Final notes:

Regardless of the all the issues I had, and changes I wanted to make, I really enjoyed making all the graphics, and programming the Pac-Man themed game. Even a simple looking game like this takes a lot of work, easy or not. I find it extremely rewarding just to complete the task itself as we all know making games isn't easy, and sticking to the game until the end is even more of a challenge. I recommend everyone take advantage of the GameDev.net challenges if possible.

Game Download - Windows (32-bit) - Built on Windows 10 (Should work on Windows 7 - 10)

rutin-gamedev-pacman-chall-gamebuild1.zip

 

If you've missed any of the earlier parts, check below for the links:

mainmenushow1.thumb.png.12c53a6ecd42c1c1980763bd4b5ac66a.png

Sadly Part 5 was supposed to be the finished game, but I'm a bit delayed as I planned to complete the rest of the programming on the weekend, however I had other commitments to attend to.

I was able to program a bit, and above is the main menu for the game. I'm keeping everything simple with keyboard games to keep that "retro feel".

If you missed my prior entry: "Multiplayer Pac-man Challenge - Part 4 - 2D Prototype", feel free to check it out by finding the link at the bottom of the post. I show the actual game movement throughout the maze, and aliens chasing you down, as well as one animation test.

As of today the Solo Play mode is fully completed. You can go around the maze collecting power orbs while being chased by the aliens. If you hit a Ice Block a timer will start that allows you to shatter the frozen aliens. They will reset after being shattered. You have 3 lives before the game over screen, and you can replay the game as well, or return to the main menu. If you manage to collect all the power orbs, you win. The score and lives will be shown in text above the play area, as well as Main Menu return prompt.

My next task is to add in 2 Player Split Screen which shouldn't take long as I can run two views in the main window, and duplicate the player 1 class for player 2 with all the functions after changing the keyboard controls.

If I have time I will use the same format for 2 Player Split screen, but have the player controlled by AI. The AI player will use path-finding to collect the nearest power orbs, and I can look at putting in a feature that if the AI hits the Ice Block, he will seek out the closest Alien to shatter it.

Some final tweaks and additions I need to make:

1. Redo the Power Orb graphic ( I don't like the current one I'm using ).

2. Add in a queue for pending movement - The normal controls requires you to hit UP RIGHT DOWN LEFT to glide, however as the movement is running on a glide and if you're moving LEFT you need to hold DOWN before you hit the opening, unless you're able to do it right on the spot. The queue will work like this: If you're moving LEFT and you hit DOWN then release the key it will add to the single queue if DOWN isn't possible yet, and will automatically move you DOWN at the next available opening without having to hold the key. The queue will only hold the last known input. This is just to smooth out movement. The same system already exists in Classic Pac-Man.

3. Add sound and music.

I should be finished soon!

If you've missed any of the earlier parts, check below for the links:

 

1.thumb.PNG.61ca574261400c241b602a9f29bd3ca2.PNG

In Part 4 I will quickly go over the 2D prototype.

You can see a quick 23 second video (so-so quality) here showing movement, and how the monsters chase you (some move at different speeds for testing purposes), as well as the "animated" ice block sprite. In my actual game I'm using a Fixed Time Step with Variable Rendering, so my graphics are smooth thanks to interpolation. Sadly in these videos you barely notice any difference if I turn it off or on, and I wasn't able to make a good comparison video so I just left it on to showcase.

(NOTE: There are no black bars in the game on the sides, the camera does not go outside of the level bounds, it's just the 'video' padding on the sides)

I did plan on using different graphics for the tile set as seen in Part 3:

mazeline.PNG.cf0cc913e20ce1bdcb79e27ed8de1cbc.PNG

But I decided to simplify the processes because it would take a lot time creating additional breaks, and nodes to connect the lines. I opted for just two textured blocks - I took a higher end versions and converted them to 2D:

mazeblock1big.png.56a56c621e480b829be6e95914088686.pngmazeblock2big.png.bef6695644860a4bdc40c614306c625f.png

mazeblock2.png.d47e54dc1f950a61c5d91439566ec250.pngmazeblock1.png.2c8a4f3683dd964862774d24f3aaec46.png

The ice block will freeze the Alien's skin allowing you to touch them and shatter them which will cause them to reset.

iceblock.PNG.0b17dbcfed1733e8877d70c9808ddde9.PNG

This also got converted and animated to 2D:

iceblockani.gif.a70804bfee5f7d0bf9be44eb27214eb3.gif

 

As of now the following works:

Level Setup, Player Movement (With gliding - no stopping unless directly moving into a wall - you can also hold up and still glide in the direction (left or right) until it's available), Collision, Enemy path-finding + full movement, and Ice Block with animation.

I still need to complete the following:

- Main Menu

- Top Menu

- 2nd Player

- Power Orbs to Collect

- Lives + Ice Block Effect

- Background with stars, or something so it's not just black

- Audio

I would like to animate the player a bit, and Aliens if I have time as I'm pretty busy this month.

I hope you enjoyed Part 4, I'm looking at finishing the project this weekend with a final update - Part 5. :)

If you've missed any of the earlier parts, check below for the links:

 

orb.PNG.7c1f5afedced0d94b25a6fa5bae2f186.PNGmazeline.PNG.bf70d0d20b3505b8e437214ae8aef08e.PNGiceblock.PNG.342d626a2223660b062a624ede0c757c.PNG

I'm a bit late on Part 3 which is a follow up to Part 2 which showcased the Robot player. I will post links to all the parts at the bottom of this entry.

Sadly I've been very restricted for time, but I've managed to create the three remaining in game graphics required for this challenge. There will be some alterations for Lives, ect... and indication that the monsters (enemies) have been frozen, but it's not a major creation by any means. Also I'll change the plastic color on the Robot as seen on top to other colors to indicate different players.

Above you will see the Orb which you must collect (very little effects here, but in the 2D version I used a soft brush to simulate better light emission), this is a direct replacement of Pac-Dots. Next you will see the graphic used to create the Maze itself (Line), and finally the Ice Block which will be in all four corners of the maze, and will temporally freeze the monsters skin, that causes them to shatter upon contact.

I've converted the Monster, Robot, and all the above into 2D Sprites with some modifications because post processing and environmental effects are not going to be available within the 2D platform. For those that are wondering, the game is being made using SFML with C++, I don't have the time to create this in a full 3D environment, but I'll keep that in mind for future challenges as I'm starting a bit late again. :D

The second part of this entry is about pathfinding. There are many ways you can find the "shortest path" either by using a "greedy" method, or "full search" method, and all have pros and cons. Pathfinding for this game only needs to be 4 directional as diagonal movement isn't possible, and it's also much more simpler considering each tile or passable 'node' holds the same movement value. In order to successfully complete this Pac-Man challenge requires that the Ghosts or in this case 'Monsters' can chase the player, otherwise there is no challenge. I coded a simple algorithm based on Breadth First Search that doesn't search walls, and exits once the path is made. You'll see a GIF below showing it in action as per my test grid. The first GIF shows a red square which represents the Start Point, and a green square that represents the Target Point. The cyan squares show which blocks have been checked, and the yellow squares are the path based on this algorithm. In the second GIF I add in maze walls, and show how the red square moves along the path to get to the green square, and also updates the path if the green square changes position.

 

gamedevrec1.gif.ad5063095cb5773fdadf0ca9c625ef1f.gifgamedevrec2.gif.fc2110bfefd28f50d2dce311d650b9f4.gif

So what is next? With the main graphics done, and the pathfinding system working, the only thing left to do is clean up the 2D Graphics, create all the menus, GUI, mazes, point system, and AI player, then add in sound effects and music. I'll have to double check the requirement list, but I don't think I'm missing anything. I'll add in Local M-Play as an addition to an AI team-mate, but if I'm running short on time I'll meet the requirement with just local.

Stay tuned for Part 4 where I will show a sample of the game in action!

If you've missed any of the earlier parts, check below for the links:

 

image.png.1f1881cf0838d2fb3709ad57abc19d88.pngimage.png.0d4452e23c2c84bf0477d55eb2157b92.pngimage.png.3271e793c833cbdb4dee532e7136489a.png

 

Welcome to Part 2 of my Multiplayer Pac-man Challenge series. In Part 1 I went over the basic idea, and the alien who replaces the ghosts seen in your standard Pac-Man game. This small robot seen above will be controlled by the player in place of Pac-Man on your journey to collect all the power orbs. I didn't have a lot of time to work on the concept, and it's a pretty rough model and texturing job. Essentially the robot is metal with a visor, and plastic on top, with plastic "fins" on the sides and back. I added some scratches and dirt as well. 

In part 3 I'm hoping to get a simple level concept, then program in the first level for the following blog entries.

If you missed Part 1, check it out: 

 

This is my first entry on GameDev, and I wanted to talk about some ideas for the Multiplayer Pac-man Challenge here on GameDev! But before I start, just some background for those that haven't seen me around on the forums. I've been programming for around 18 years now in various languages, and also have a strong passion for creating music, and digital graphics.

In order to complete this challenge, certain requirements have been set:

Game Requirements

  • 2+ player board - Choose one or more games modes - local multiplayer, networked multiplayer, and/or AI players
  • Team play? Vs play? Both? You decide.
  • The game must have:
    • Start screen
    • Player selection
    • Score system for appropriate mode (winner in Vs mode or team total in Team mode)
    • Sound effects
    • Graphics representative and capturing the spirit of a Pac-man clone
    • One or more levels
  • Gameplay mechanics and mazes in the spirit of Pac-man - the game does not need to be an exact clone in graphics or gameplay, but it should demonstrate inspiration from Pac-man. The idea is to create multiplayer Pac-man gameplay.

Art Requirements

  • The game may be in 2D or 3D
  • Players must be clearly identified

So far I've decided on a space theme. Everything will stay true to the Pac-Man game play style, however I will be using my own assets that I will create just for this challenge. My idea was to have a space robot going through a Pac-Man style maze while being chased by four alien creatures. Your objective is to collect the power orbs in place of the traditional Pac-Dots. There will also be nova mines that will trigger and temporally freeze the aliens.

Due to time constraints I'm going to be sticking to a 2D version with local multiplayer, and possibly an AI teammate as well.

I've made a 3D concept for the alien design, and I will be converting this to a sprite sheet for the game.

image.thumb.png.ddbe9f30561c5769acc5d4318c1ad32a.png

 

I'm hoping to finish the main robot within a day or two, then I can complete menu graphics, and level assets.

Since I'm very tight on time, I will look for free to use music and sound effects to add into this project.

Thanks for reading, and hopefully my next update will be soon!

 

If you're interested in participating in this challenge, click the link below for more details. 

 

  • Advertisement