The Edge Get Into Games Challenge 2013: ‘Do no harm’ Progress Report

Full progress report for the creation of the game Do No Harm.

Final video progress:

2013-03-04/05:

First two days I have used to find out what to do under the theme “do no harm”, and I have been around a lot of ideas, oil drilling without causing spillage, saving zombies as a doctor sworn to do no harm and demolition games. I have tried to get away from stopping others from doing harm, which I feel leans towards protection. So I came up with this idea from an old episode of police squad where Frank Drebin is under cover as a locksmith, and when trying to file a new key, is slips ad lodges into the ceiling. So now if you are an incompetent key maker trying to make keys without them shooting out at the customers, you have a gold to make keys and to “do no harm” to your customers. 🙂

Do No Harm - 2013-03-05-(1) Do No Harm - 2013-03-05-(0) Do No Harm - 2013-03-04-(0)

2013-03-06:

Maybe I should make the same game but with a stone age man trying to show his fellow tribal men. And if he hammers the rock wrong stone shrapnel will shoot out at them and do harm. Something like hit the right facet at the right time to make an axe or tool.

I’ll start doing some sketching and brainstorming about how the stone cutting part of the game should be a game. Facets remember timing, precision or a combination.

All above discarded for a new idea, Cosmic ray/DNA/RNA…

This is the idea of you being a cosmic ray zipping through different organisms starting out with an ameba and ending up within a human.

The ameba has few DNA/RNA strings and a small size. And a human many and large size.

Spend the evening making a POC to see if I could get a feel of speed and some minimal player control, and after a few hours I have a small game play, that I like playing.

Do No Harm - 2013-03-06(1) Do No Harm - 2013-03-06(0) Do No Harm - 2013-03-06(-1) Do No Harm - 2013-03-06(2) Do No Harm - 2013-03-06(3)

2013-03-07:

I want there to be a picture of the organism being run through, and I want it to mutate every time I hit a DNA string. So the game is to “Do no harm”. Theo I guess people would like to see how mutated they can make the different organisms. 🙂  Hopefully I can use some of my experience with Genetic algorithms to represent an organism from a bit sequence, and let changes to bit string reflect on the organism. Think the visual feedback would be positive, and might make keeping the focus on the main game harder coz you want to see what damage you just did 🙂

Working a bit on the DNA strings to make them fast to render but nice to look at, don’t think I can get what I want with the build in primitives as they have no UV mappings. So far I have tested Cylinders, planes and line-rendere.

After more testing I found that I need to keep the meshes very simple, so I’ll leave them for now, and take a look a fog and max movement indicators to help the player to in the center of the game.

Done the score and progress display mockup. TextMesh

Added Particle effect to hit just to indicate where the hit happened. I would like the cylinders to break into two where it is hit.

Do No Harm - 2013-03-07-(0) Do No Harm - 2013-03-07-(1) Do No Harm - 2013-03-07-(2)

2013-03-08:

  1. I want it to be made up of simple primitive meshes 4-5 or so, hope to make it work, even though I know that it will be a lot of work for something not affecting the gameplay.
  2. Been thinking about how to force the player to try to keep the particle in the center of the path/screen, and by applying Heisenberg’s Uncertainty principle I can allow the player to move far way if it’s for a small amount of time. So to be able to move far away you have to have been in the center for a certain amount of time. It will work.

Do No Harm - 2013-03-08-(0)

2013-03-09:

Today I’m going to work on:

  1. Problem with reliable collision detection with mesh colliders.
    1. I have now stopped moving objects myself, and started to use rigid body physics, and if I use layers to make internal cell objects ignore collisions with themselves everything seems to work better.. Ended up using the “Edit->project Setting->Physics” where I disabled everything except Collision between cell objects and player. That worked, Couldn’t get “Physics.IgnoreLayerCollision(8,8,true);” to work.
  2. Added GuiSkin and font
  3. I need one common place to set speed for all objects in the scene. Cell objects and particle effects a.s.o.
  4. Need energy particles to add energy to player
    1. Added particle effect with motion and layer for it called “Energy”
  5. Add line to center indicator.

Do No Harm - 2013-03-09-(0) Do No Harm - 2013-03-09-(1)

2013-03-11

The game is going to be a progressive game, starting out easy and then getting harder and harder, so only ONE level. Play is to be judged by time or distance. With distance I have the ability to reward people moving faster, collection energy on the way.. Hmmm.. Guess the choice have been made 🙂 Or distance over time.. So most efficient..?

  • Self-illumination/Diffuse texture for particle
  1. Cell structure mesh and Texture.
  2. Look at super hexagon for inspiration for progressive motivation and simple menus
  3. Tried a lot of different things to make the collision detection solid, but without success. That is until I read some comments about not using non convex mesh colliders for moving objects. So I accepted and turned on convex collider, and now everything is working perfectly. But you can’t fly through the Y-part of the chromosomes, so I guess I have to change the game idea a bit, not to be big to be chromosomes, but smaller to the size of molecules.

2013-03-12

  1. Test getting stuff from other sites/servers. Damn what a hard time getting it to work?

ANSI crossdomain.xml on server

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

From unity webpage “uploadProgress is currently not fully implemented in the Web Player. If used in a Web Player it will report 0.5 during the upload and 1.0 when the upload is complete” or not. I don’t see the 0.5.

  1. Added Startup and Menu scene.

2013-03-13

  1. Made the first 2 PHP scripts for the high score part.
  2. Design DB for Universal high score.
  3. Added extra Database to the-blue-pixel.com (8€) can’t see why it should cost that much??
  4. POC of top10 list to menu scene.
  5. Mysqli connection set utf8 charset by adding $mysqli->set_charset(“utf8”) to php script.

Do No Harm - 2013-03-13-(2) Do No Harm - 2013-03-13-(1) Do No Harm - 2013-03-13-(0)

2013-03-14

  1. Set Unity to use Visual Studio 2012 as Editor. Perfect :)))
  2. Made the PHP Submit score script
    1. Receive encrypted information from the game containing username, password, score and timestamp and an unencrypted CRC.
    2. Decrypt, generate CRC and compare with received  CRC
    3. Get user from database if present.
    4. Make Hash of the received password.
    5. Compare Hash with the hash in the database.
    6. Store the score in database.
    7. Return encrypted information containing success and timestamp and an unencrypted CRC.
  3. Gotten submit to work from Unity by using StartCoroutine(UploadScore());
  4. Look at logo using color schema
  5. Added font in size 32 and 64, one for GUI and one for TextMesh.

2013-03-17:

  1. Set up project for SVN, information at Unity website.

2013-03-18:

  1. Move PHP with password, out of the public accessible directory!
  2. Accepted encryption using DES only. Simple and ok for a highscoreList.
  3. Make rest of Henning Logo for Login Screen.
  4. Made the PHP login script.
    1. Receive encrypted information from the game containing username, password and timestamp and an unencrypted CRC.
    2. Decrypt, generate CRC and compare with received  CRC
    3. Get user from database if present.
    4. Make Hash of the received password.
    5. Compare Hash with the hash in the database.
    6. Return encrypted information containing success and timestamp and an unencrypted CRC.
  5. Center High score.
  6. Make user move cursor to center of screen before starting game.

2013-03-20:

  1. Made the PHP register script.
    1. Receive encrypted information from the game containing username, password and timestamp and an unencrypted CRC.
    2. Decrypt, generate CRC and compare with received  CRC
    3. Test if username is already in database
    4. Make Hash of the received password.
    5. Store user with hashed password.
    6. Return encrypted information containing success and timestamp and an unencrypted CRC.
  2. Clean Submit.php
  3. Add MasteGameController (singleton). Music, score a.s.o.
  4. Added Score calculation to use distance to center

2013-03-21:

  1. X on login window

2013-03-22:

  1. Rename fonts to font32 and font64 so it will be easy to test with different fonts.
  2. Find new font that is monospaced.. Best for highscore and lists and stuff that changes all the time, like a timer!

2013-03-23:

  1. Error feedback on login form.
    1. Add error label
    2. Return all information from server call to be able to display error message
    3. Make login form taller  if there is errors else org size

2013-03-24:

  1. I would like alternating colors on the Leaderboard.
  2. Music should loop.
  3. Restructure the entire game, to get the right class hierarchy.
  4. Add game animation in the background of main menu
  5. Add score dependents of time played and distance to particle.
  6. Add linear rise in object speed to time, to make the game more and more difficult.
  7. Change transparency of GUI box background.
  8. Same corners in game screen as in menu scene.
  9. Leader on the leaderboard should have an animation or sparkles or something. (random color)
  10. Stop Speed increase if dead.
  11. Hide leaderboard when showing login form.

2013-03-26:

  1. Add box around error message, and make error messages clear.
  2. Made particle effect for particle in logo scene smaller and more energetic.
  3. Don’t allow special characters in username/pass to avoid SQL ejection. (used ctype_alnum).
  4. Correct error where users with longer names than stored in dB, do not get scores saved.
  5. Crop name in leaderboard if to wide. Limited to 20 chars.
  6. Add particle effect to player particle for energetic effect.
  7. Adjust size of particle.
  8. Fix error with top left/right corner. 2pixel wide error at top. And minor left and right, solved with moving texture a bit.
  9. Make DNA hit indicator. ( YYYXXXXXXX ). Basic version done.
  10. Write Game entry document.

2013-03-27:

  1. Register domain.
  2. Gmail/YouTube.
  3. Twitter,
  4. Collecting all my email accounts in ONE account.

2013-03-28:

  1. X in login box isn’t fully visible.
  2. Move login & register down a bit.
  3. Generate objects in front of player to force movement.
  4. Move to center detection needs to be more tolerant.
  5. Ensure objects fade out in front of player!
  6. Make BETTER looking DNA hit indicator. 🙂
  7. Make better looking DNA texture.
  8. Adjust lighting in all scenes.
  9. Remove cursor from logo screen.
  10. Cursor for the main screen.
  11. Change color of logo, nice and dark, but same theme as menu and game scene.

2013-03-29:

  1. Wrong Error message, if user does not exists (says wrong password)

2013-03-30:

  1. Basic cell structure needs real normal map and texture to make it look like a long molecule.
  2. Adjust difficulty
  3. Correct error in object fadeout, caused by wrong camera position.

2013-03-31:

  1. Add menu music, and restart music when starting game.
  2. Add state dead check on energy pill collision
  3. Breakable cylinders (DNA).
  4. No music on logo.
  5. Particle effect to big? (Difference in web player and editor!)
  6. Set Logo background to black.
  7. Chromosome needs to be remade to be convex and an entirely new object.
  8. Add INC $D021 Logo
  9. Make instruction Screen
  10. Add textures to instructions
  11. Add corners to instructions

2013-04-01:

  1. Make game over text to have same location as move to center. Over and under player particle.
  2. Spell error in instructions “mail” => “main”.
  3. Curser missing on instruction screen.
  4. Make instruction screen texture with explanations.

2013-04-03:

  1. Buttons as buttons.
  2. Esc to return to menu. Info.
  3. Don’t restart music when returning from instructions.
  4. Create objects should be within 2, or even less.
  5. Instructions: page 1/2 Arrow < and >.
  6. Add your top placement/score.
  7. Logo background and beta uses same material. Correct it!
  8. Movement times 2.

2013-04-04:

  1. Error box in login Form to wide.
  2. Register (if empty name or password, show “Type in a name and password to register.”)

2013-04-05:

  1. Add Credit for font and music to information scene.
  2. Start menu music when returning from game.
  3. Rewrite instruction to simplify game goal
  4. Remove energy pill! Tested to see if I should remove energy pill, as it’s not adding to game play (no one goes for it, is too difficult and expensive). Remove from instruction image.
  5. Change logo to my new INC $D021 Logo.
  6. Press ESC to return to main menu on game startup (cancel)

2013-04-06:

  1. Box/button texture should be sharper edged to match font.
  2. Input text boxes should have same texture as buttons/boxes.
  3. Input text boxes should have same texture in all states!
  4. Error in GetBestScore. Placement is correct but score is from first entry in db.
  5. Better graphics for curser arrow.
  6. Cleanup of non-used assets.

2013-04-07:

  1. Center indicator needs to change color to show player that center is a good place to be. RED when long way from center.
  2. Need max dr vector to be calculated as max mouse movement is dependent on screen resolution.

2013-04-08:

  1. Add some color to the instruction scene.
  2. Logo DNA => DNH (Do No Harm)
  3. Error in placement script, when first registering.
  4. Faster and longer animation in Logo Scene.
  5. Fade for logo scene.
  6. Audio to Logo scene high pitch.
  7. Center indicator to be red earlier.

2013-04-09:

  1. Move Back button to right-top to match the main menu scene.
  2. Update center indicator graphics on instruction texture.
  3. Logo on Main Scene
  4. Add static Color Cycling class.
  5. Keep object density constant
  6. Optimal center indicator.
  7. Index dB, on score and user name if needed in future if 100.000+ games played.

2013-04-10:

  1. Move the game to from the-blue-pixel.com to incd021.com….
  2. Remove incd021 logo from logo screen (It has been added to the webpage)

2013-04-11:

  1. On register, the message you haven’t played yet, isn’t displayed?
  2. Added loading to personal best when loading.
  3. Add link from web player page back to incd021.com
  4. Add larger header  with color to webpage.’

2013-04-14:

  1. Output game to web streaming (got logo first so should load quickly).
  2. Submitted my finished and polished game, now I just have to wait and see. 🙂

Assets:

  • Font
    • “PRESS START 2P REGULAR” By  Cody \’CodeMan38\’ Boisclair openfontlibrary.
  • Music
    • “Blam” and “ClickThenAction” by DST nosoapradio.
  • Sound effects
    • Me

I hope this gave some insight into the work done on this project. Feel free to comment, as I hope to get feedback to improve myself. Thanks 🙂

– Henning

Leave a Reply

Your email address will not be published. Required fields are marked *