• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 03:17
CEST 09:17
KST 16:17
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Serral wins HomeStory Cup 2914Serral wins Maestros of the Game 243ByuL, and the Limitations of Standard Play3Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12
Community News
Neeb returns to progaming; rejoins ONSYDE11Weekly Cups (July 20-26): Early returns on 5.0.16b8IntoTheTV X SOOP SC2 League : Weekly & Monthly4Clem: "I don't have that much hope in Blizzard"8ZeroSpace Early Access is Now Live!42
StarCraft 2
General
Weekly Cups (July 20-26): Early returns on 5.0.16b Neeb returns to progaming; rejoins ONSYDE Balance hotfix patch 5.0.16b (July 16) Clem: "I don't have that much hope in Blizzard" Terran or Protoss
Tourneys
RSL Revival: Season 6 - Qualifiers and Main Event PIG STY FESTIVAL 8.0! (13 - 23 August) Sparkling Tuna Cup - Weekly Open Tournament IntoTheTV X SOOP SC2 League : Weekly & Monthly INu's Battles#18 - Cure, herO, Rogue & ByuN
Strategy
[G] Having the right mentality to improve
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
Mutation # 536 Railroad Switch The PondCast: SC2 News & Results Mutation # 535 Assembly of Vengeance Mutation # 534 Burning Evacuation
Brood War
General
BW General Discussion screpdb: new Starcraft reporting tool ASL22 General Discussion ASL 22 Proposed Map Pool Klaucher discontinued / in-game color settings
Tourneys
2v2v2v2 Tournament [Megathread] Daily Proleagues Star Con San Diego 2026 Escore Tournament - Season 3
Strategy
Fighting Spirit mining rates Odyssey Mineral Stack Saturation Simple Questions, Simple Answers PvT advise for noobs
Other Games
General Games
ZeroSpace Early Access is Now Live! Path of Exile Nintendo Switch Thread Stormgate/Frost Giant Megathread General RTS Discussion Thread
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Power Rank TL Mafia Community Thread NeO.D_StephenKing vs This Guy From 1 Million Dance
Community
General
Artificial Intelligence Thread US Politics Mega-thread Russo-Ukrainian War Thread European Politico-economics QA Mega-thread How to buy a book - shipping from Korea to Europe
Fan Clubs
The IdrA Fan Club The HerO Fan Club!
Media & Entertainment
Movie Discussion! Anime Discussion Thread Series you have seen recently... [Req][Books] Good Fantasy/SciFi books
Sports
2026-27 Football Thread placeholder 2024 - 2026 Football Thread TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Simple Questions Simple Answers FPS when play League Of Legend on laptop
TL Community
Northern Ireland Global Starcraft The Automated Ban List
Blogs
Games, Hormones, and "Dark" …
TrAiDoS
Hello guys!
LIN1s
ASL S22 English Commentary…
namkraft
Poker (part 2)
Nebuchad
An Exploration of th…
waywardstrategy
ramps on octagon
StaticNine
Customize Sidebar...

Website Feedback

Closed Threads



Active: 10855 users

Student Game Dev Part 15 - Play testing

Blogs > Soan
Post a Reply
Soan
Profile Blog Joined August 2010
New Zealand194 Posts
March 07 2014 21:41 GMT
#1
+ Show Spoiler [Previous parts] +
Part One - It begins
Part Two - Technical Foundation
Part Three - Game Design
Part Four - Input and Physics
Part Five - More Physics Things
Part Six - Even More Physics
Part Seven - User Interface
Part Eight - UI and the Editor
Part Nine - Editor Progress
Part Ten - Progress, and videos
Part Eleven - Fixing the Physics
Part Twelve - Unproductive
Part Thirteen - Context menu + enemies
Part Fourteen - Enemies and Problems


This Week
Hello again TeamLiquid! Welcome back to my blog about the development of The Adventures of Sam the Pirate, the 2D platformer I'm creating as the final game project for my Bachelor of Software Engineering degree. Last week I talked about implementing the first, most basic enemy and its interaction with the player. This week I'll be talking about continuing on with implementing the basic enemy, fixing the camera, multiple levels, and the first play testing session. I've also got some new concept art!

Basic Enemy
The basic zombie pirate is mostly done. I still need to have them turn around before falling off a platform, but otherwise they can kill the player, and the player can kill them. If both are attacking and have collided, then the zombie pirate gets priority and the player dies. If the player runs into the back of a zombie pirate without attacking, the zombie pirate turns around and kills the player.

It's pretty likely that they'll be the only enemy type present in this first version, as I don't think I'll have time to implement, and I'm not sure that my artists will have time to create the necessary animations. There's only 10 weeks left in my degree after all! (Which is actually kinda scary.)

Fixing the Camera
I fixed the camera and the scrolling this week as well. Previously, when I first set everything up, all the positions of the objects in the level, the player, tiles, etc, were initially done from screen co-ordinates, so if the resolution changed it would all display kind of weirdly. Not really sure why I did it that way in the first place, as it doesn't really work. When the camera was at (0,0), its top left corner was sitting at the top left corner of the screen, but not at the top left corner of the level, which is how I actually want it to work. So I adjusted the camera to take the screen resolution into account.

I then had to adjust the position of level objects, as the change to the camera had thrown everything off. Getting the vertical scrolling working was especially a bit tricky, as the camera is designed to follow the players position, I couldn't just take the players y position, or the difference between that and the point where vertical scrolling starts, as the cameras new y position. Again, I had to take into the level height relative to the screen height into account, so the new method of finding the correct y position for the camera looked something like this:

(level height - screen height) - (scroll up point - player y position)


Before hand, the cameras y position would have been at 0 when the player started moving up the screen, so I just took the difference between the scroll up point and the players y position (which was in screen co-ordinates!) to find the new y position.

Multiple Levels
I managed to implement multiple levels this week, no level selection screen just yet, but it's possible to play through more than one level and then return to the main menu. Right now it's really simple and you load into the next level immediately, but later on I'll need to display final score calculations before loading the next level. It works well enough as it is, however the first time I finished the first level and hit the second, I started running into invisible walls. Once I turned on my physics debugging so I could see bounding boxes, I discovered that all the physics actors from the previous level were still present! Once I fixed that by making sure a finished level was properly removed from everywhere it needed to be removed, so all the physics actors were destroyed, etc, everything worked nicely.

Play Testing
Had a little bit of external play testing today, which went ok. Some point during the week I seem to have created a few bugs, where occasionally the players position would not be reset correctly when they died, or enemies would appear inside platforms, or animations wouldn't play correctly, which was annoying, but that's programming for you I suppose. Add new features or modify/fix existing ones, break something else in the process. Otherwise testing went ok, got some good feedback on the movement and how the combat worked, including a couple things I hadn't thought of. I have been planning to change the size of the players bounding box when they attack, but it was suggested that I could just use a entirely separate one poking out in front of the player instead. Which might actually be easier to do instead.

New Art
This week I have a couple pieces of concept art showing off the basic zombie pirate.
[image loading]
[image loading]

What's next?
Next week I'll be attempting to fix some little bugs, adjust the movement, and possibly look at making the combat feel better. I'll also be looking to hopefully start work on the parallax effects. I'll probably do a new video some time next week as well.

Keep up to date!
Be sure to follow me on Twitter, and like the Facebook page to stay up to date on future content and blog posts when they happen. If you have any questions don't hesitate to ask, either through Twitter or Facebook! You can also check out the blog, previous posts, screenshots and videos over at my site.

Please log in or register to reply.
Live Events Refresh
Next event in 1h 43m
[ Submit Event ]
Live Streams
Refresh
StarCraft: Brood War
Sea 18249
Leta 223
Killer 115
Mind 90
Bale 61
ZergMaN 31
ajuk12(nOOB) 28
yabsab 21
Sharp 21
Noble 12
Dota 2
NeuroSwarm151
League of Legends
JimRising 616
Counter-Strike
Coldzera 1228
Other Games
summit1g5792
singsing824
ceh9569
Sick150
RuFF_SC2144
Organizations
Other Games
gamesdonequick896
BasetradeTV59
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 15 non-featured ]
StarCraft 2
• intothetv
• AfreecaTV YouTube
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• iopq 8
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• lizZardDota2111
League of Legends
• Lourlo1446
• Rush1078
• Stunt158
Upcoming Events
Replay Cast
1h 43m
CrankTV Team League
3h 43m
OSC
5h 43m
OSC
10h 13m
Replay Cast
16h 43m
Escore
1d 2h
CrankTV Team League
1d 3h
OSC
1d 15h
Replay Cast
1d 16h
Afreeca Starleague
1d 20h
[ Show More ]
RSL Revival
2 days
ByuN vs SHIN
Solar vs Lambo
WardiTV Summer Champion…
2 days
Afreeca Starleague
2 days
RSL Revival
3 days
Clem vs Serral
herO vs Rogue
WardiTV Summer Champion…
3 days
WardiTV Weekly
4 days
Sparkling Tuna Cup
5 days
PiGosaur Cup
5 days
Replay Cast
6 days
Kung Fu Cup
6 days
Replay Cast
6 days
Liquipedia Results

Completed

Proleague 2026-07-29
SCTL 2026 Spring
Eternal Conflict S2 Finale

Ongoing

CSL 2026 Summer (S21)
KCM Race Survival 2026 Season 3
RSL Revival: Season 6
CranK Gathers Season 4: BW vs SC2 Team League
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026

Upcoming

Escore Tournament S3: W5
ASL Season 22: Qualifier #1
ASL Season 22: Qualifier #2
Acropolis #5
Escore Tournament S3: W6
Escore Tournament S3: W7
Escore Tournament S3: W8
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
PiG Sty Festival 8.0
Light Tournament 2026
ESL Pro League Season 24
Stake Ranked Episode 4
Logitech G Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #5
BLAST Open Fall 2026
Esports World Cup 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.