# Dev log

All time is CEST

- 07:14

  Wake up, discover the theme on Twitter. Start scrambling ideas. Take
  breakfast.

- 08:22

  Initialise github repo. A few ideas popping up already. Try to avoid obvious
  sea references.

- 08:35

  Start this dev log!

- 08:41

  Dev log now publicly advertised.

- 09:51

  First hurdle. GL doesn't want to Clear and I have no clue.

- 09:55

  Duh. Found via rubberducking I was calling some stuff *before*
  MakeContextCurrent. 20min lost.

- 09:57

  Sideband idea: make this file post new LIs to Twitter on push (with link to
  file+line on Github)

- 10:08

  I miss fuzzy jump to function in vim. Adding ctags to CtrlP right now, with `fswatch . "ctags *.go"`

- 10:35

  Still sorting out the basic frame code, but I've got an idea, and backgroundly crunching on game mechanics.

- 10:36

  Twitter stream in #LD48 proves to be a real boost to morale. Much less noisy than IRC.

- 11:57

  And we have a spritesheet!

  ![](screenshots/1.png)

- 12:12

  Taking a light break to stuff self.body with calories

- 12:45

  Short on supplies. Have to get out or risk falling down in 2 hours due to lack or carbohydrates in bloodstream.

- 14:12

  Got sidetracked in reading Doom engine trivia

- 15:21

  Getting to terms with OpenGL. Sprite system coming along nicely

  ![](screenshots/2.png)

- 16:09

  Sprites keep their relative size and aspect ratio. Also, sprite scaling.

- 17:54

  After much fight against GLOrtho, now having arbitrary sprite positioning in viewport coordinates.

  ![](screenshots/3.png)

- 17:55

  Girlfriend back home. Let's take a break and have a walk outside.

- 19:15

  Back to the task!

- 19:40

  Sprite rotation support

  ![](screenshots/4.gif)

- 20:34

  Going concurrent. Goroutines, channels and closures make passing input events outside the locked OpenGL thread *really* easy.

- 20:51

  Time for another break. Calories needed.

- 21:30

  Back to jamming! ... on and off.

- 23:45

  Managed to do some mouse tracking with sprite pointer

- 10:39

  Moved out to nearby Starbucks. Connection is crappy, but back to jamming.

- 10:50

  A good night sleep is a good call. Sprites are easier to make.

- 12:09

  Drawing clouds. This is starting to look like an actual game.

- 12:10

  Going back to hotel.

- 13:55

  This is vaguely starting to ressemble a form of game.

  ![](screenshots/5.png)

- 14:19

  Now I have a sea moving. Time for a break.

- 14:59

  Back to jamming

- 15:50

  Tiling water instead of hardcoded quads.

- 16:02

  Sprite tiling functions.

- 19:25

  Window size independence. More clouds, better tiles. Second platform.

- 21:55

  Train departure.

- 22:35

  Input state management in additional goroutine done.

- 23:00

  Stuck in world update iteration, missing how to have its goroutine sleep.

- 23:09

  Worked around by having the physics goroutine tied to video ticks via a
  channel.

- 23:39

  Broken physics integrator does stupid things. To the moon in seconds, physics
  is fun!

- 23:57

  Problem solved. Was accumulating twice. Now to find nice constants for movement.

- 00:07

  Train arrives. Integrator stubbornly refuses to move player left more than once.
