-1+1512 
Making Games with Construct2

It's a real treat! A 4 weeks course on the basics of making HTML5 games with construct 2.

For those who don't know construct 2, it's a very easy to use game making tool. (You can download it for free)

HTML5 is a technology compatible with desktop computers, iOS, Android, and Windows8 devices.
So, in short, you'll learn to make games that everybody in the world will be able to play.

It's free, and it's designed to work on the free version of Construct2.
We don't want your money, just your will to learn, and in exchange, here's what you'll get:

This course will be LIVE every saturday evening (GMT+1) during 4 weeks.
Live means:

  • you'll see Yann or Kyatric using Construct 2 directly on screen
  • you'll hear one of us live
  • you'll be able to directly ask us any question
  • if you miss the session, don't worry, the session will be recorded (on twitch and then uploaded on youtube) and directly replayable.

You'll be able to talk to us via a chatroom. During the live session, one of us will obviously do the presentation, and the other will stay with you on the chat.
If anyone bring something relevant for the current topic of the course, the question will be directly passed to the talker for live answer.

On top of these 4 live sessions, we'll be available all week on reddit and scirra's forums to answer any question about this course.
But remember, our goal is for you to learn. So, we might challenge you to try to answer some of your question yourself, with some hints (:

To support our teaching, we'll go through the making of this simple platformer:
http://www.scirra.com/arcade/addicting-action-games/4255/neon-platformer

You'll learn many of C2's cool features. How to set up your projects, how to use the most useful plugins and behaviors, how an event sheet is executed, debugging, local/global variables, understanding picking, how containers work, some basics of using function, creating simple patrolling enemies, scrolling, stomping, checkpoint, respawn, changing levels, and so on.

But more than that, you'll learn the thinking and process behind making such game. From the idea, to prototyping, to adding graphics, animation and sounds to get a finished and good looking game you can export to any website.
Our ambition is not to just make a "how to" but to communicate the reasons behind the choices made. So you'll be able to adapt them to your own design.

And that's only what we assure will be during the live courses. We'll also provide some written tutorials, example capx (sources) and videos.

Amongst all of that, we hope to have a fair amount of interaction with you, we'll be waiting for your challenging questions. We don't necessarily intent to reproduce exactly the same game as in the example. The demo game is more of a guideline, and depending on your question and suggestion, we might come up with a different result.

In the end, we hope you'll be able to gain enough momentum to be able to develop games on your own using Construct 2 (:

Lectures
  1. lecture 0: prelude

    Kyatric made some videos to get you started so we can focus on important things.
    If any problem arises during download or installation, or if you don't understand some of what is explained, feel free to ask us here (:

  2. lecture 1: Getting Started

    This first live session went pretty well. We covered every thing we had scheduled to cover:

    • setting up a project
    • difference between window width/height and layout width/height
    • using textbox to have some feedback along the way of the development
    • setting up a layer hud that doesn't scroll
    • the plugin -> object type -> instance concept
    • object type and common properties
    • instances and individual values
    • behaviors (platform, solid, scrollTo)
    • dying by fall
    • avoid falling out of the side of the layout
    • one of many way to handle checkpoints
    • a complex way to handle multiple checkpoints ( with a little introduction to picking an loop)
    • a simpler way afterward

  3. lecture 2: in-depth

    Again a good session. Here are what we covered:

    • repeat and for loops
    • loopindex
    • random function and System expressions
    • picking with the mouse
    • pick all (reset the picking)
    • Action, Condition, Expression (and Properties)
    • Adding and counting coins: Is Overlapping vs On Collision
    • PickedCount
    • Another way to die: spikes
    • Restart layout vs Respawn player (pros and cons)
    • Instance vs Global variable
    • Groups for organizing events
    • Avoid repetition: OR block, Boolean instance variable, function
    • How function works (creating, calling, returning, etc)
    • Groups as a control flow mecanism (pros & cons)

    I also started to give you some challenges.

    Here are the two things you can try to re make:

    The assets are downloadable here

    And as an extra challenge on this one, you can try to optimize these rather unoptimized assets.

    And as an extra challenge, try to find a way to only pick on sprite when two are stacked on each other (:

    Don't hesitate to post your solution on the subreddit (:

  4. extra video: Picking

    I recorded an extra video to talk a bit more about picking. It's really a topic that deserved its own video and I wasn't so convinced by my earlier explanations.

    In this video I cover 4 examples:

    • different method of picking randomly placed sprites
    • use of the foreach to "look" at instances one by one
    • use of the foreach ordered to zSort your instances
    • a complex example on connecting nodes

  5. Extra video : Variables

    I felt we needed to take a bit more time to come back on the subject of variables in Construct 2. Hopefully this (more or less improvised) video will fill in the gaps and show you a few interesting tricks to reuse in your own projects.

    In this video I cover : * Global variables and how they can be used to pass values from a layout to another. * How to emulate booleans with global variables. * Instance variables and how they can be used for picking. * A quick example of using them to handle the firerate of a cannon * A nice way to use them on a single button object type to execute multiple functions. * Local variables and how they are limited by the scope of the top event they are "attached" to * A bit of "string manipulation" thanks to static and not static instance variables.

  6. lecture 3: enemies and animation

    This one was hard, I wasn't able to do all I wanted to do, so I'll probably make extra videos during the week to cover everything.

    So stay in tune (:

    For now here are the point we covered:

    • Patroling enemies using bullet behavior and colliders
    • Patroling enemies using sine behavior
    • Stomping
    • Health and health bar
    • Taking damage and knockback
    • Workflow tip on animation (first quick crap animation, then once everything is figured out (speed, scale, etc), create clean final animation)
    • Importing animation frame
    • Animation properties (looping, repetition, repeat to, ping-pong)
    • Setting up origin point
    • When and Why cropping image frames
    • Setting up the animations in event (idle, run, jump, fall, land, die)
    • Refining Death and Respawn to take animation into account

    Here are three new challenges:

    Reproduce this ladder mecanism.

    I choosed shift to grab the ladder but if you have better ideas for control, feel free to do whatever you want. We just need to be able to climb the ladder (:

    Reproduce this activable lift mecanism

    Same here you're free to use the controls you want.

    You just have to reproduce this kind of activable lift mecanism.

    There's still some little glitches in C2 where your character's position isn't updated correctly so you see some gap when the lift go down, and your character goes into the platform when the lift go up.

    But it's still an interesting mecanism to test your C2 skills (:

    • 3- Health bar

    In the video I talked about a third challenge I forgot to mention

    Just try to make your own health bar. Mine is a bit too simple.

    You could have a bunch of heart appearing, you could make a fancier health gauge, etc.

    Don't hesitate to post your solution on the subreddit (:

  7. Extra video: State vs change

    Here's an extra video where I explain the difference between things that last over many ticks, "states", and things that should be instantaneous, "change".

    One way to think about them and some examples.

  8. Extra video: Containers

    What are containers, how do they work, and who to use them to add some animations to our enemies.

  9. Extra video: Effects and graphics

    Explosion, particles, parallaxe and getting our game to look better.

  10. Extra video: Platform Behavior

    In-depth description of the platform behavior and its parameters.

    Understanding how they work to achieve some interesting motions.

  11. lecture 4: audio, export, publish, plugins

    Annnd Last session (:

    Here is what we've covered:

    • A little word on frame-by-frame animation (animation frames) vs procedural animation (spriter)
    • Implementing sound
    • Being carefull about what is executed every tick and what is not
    • Export for web
    • How to embed a game in a web page
    • How to avoid scrolling the page with the arrow keys
    • How to install a plugin
    • Being carefull about third party plugins

    It was super interesting and we got a lot of good feedbacks. Hope we can one day do it again. And that I would speak english even better :D

    From this point, here are some interesting things you should do to hone your freshly learnt skills:

    • help people on the scirra forum, one of the best and challenging ways to learn
    • try to reproduce simple mecanism
    • test simple ideas
    • try discovering other plugins we didn't covered in the course, test them and find some good use for your games
    • if you really want to get good, get to know a bit of programming, enough to be able to read some program and reproduce some algorithms on C2.
    • try participating in some contest
    • have fun... always :D

Prerequisites

Your interest. And maybe installing Construct 2... could help.
You can find the last beta version here:

We won't be using the stable version and you won't be able to open our capx with it (only forward compatibility)

Syllabus

/! this syllabus is more like a roadmap. depending on student expectations, speed of the lecturer, and well anything that can happen during the live, it might be reorganized throughout the course.

Week 1 - getting started

  • C2 presentation
  • basic debugging (write in textbox)
  • platform basic (running, jumping)
  • dying/respawn/checkpoints
  • end of level/changing level
  • scrolling basic (scroll to behavior)

Week 2 - developping further

  • variables
  • basics of picking pickups
  • many ways to die - how to avoid repetition of code
  • functions
  • Loops & local variables

Week 3 - making things look pretty

  • Add animations (idle, running, jumping, falling, dying)
  • Enemies and containers
  • Stunning, Knockback
  • Stomping
  • FX
  • Data persistency between layouts

Week 4 - wrapping things up

  • Audio
  • Export
  • Third party plugins - where to find them, how to instal
Additional information
Teacher qualifications

Yann Granjon (a.k.a FrenchYann) :
I'm a 3D artist and a programming hobbyist.
I started using multimedia fusion 2 around January 2010, switched to Construct Classic at the end of the same year, and I've been following C2's development since its first public release, around the begining of 2011 if I remember correctly.
Most of the game I made can be seen on my website
On top of using C2 almost every day, I'm also continuously learning other programming languages. I currently know php/mySQL, javascript, C, and a bit of C++, AS3, java, Lisp and lua.
Knowing these other language, progressively changed the way I solve problem on construct 2 and led me to develop some usefull patterns.
As a complement of this course, you can also follow me on my youtube channel. It's a bit of a sandbox of idea, sometimes it looks more like a tutorial, some other time just showing off some weird idea.

Kyatric:
I'm an indy game maker and I've written tutorials/provided support about making games in Construct 2 for the past 2 years and a half.
I've been a long time programming hobbyist before finding Construct Classic and then Construct 2 which I totally embraced, allowing me to release my first "true" games.
I've learnt languages like C, HTML and PHP along the years and even messed a bit with JavaScript (to write a few plugins for Construct 2) but this is the tool I prefer and get concrete games done with.
You can find my work (published tutorials, games and blog posts) on my website http://kyatric.com

Latest Update
Week#2 live sessions starts soon! (2013-04-27 13:53:39)

"Hey Everyone!

Hope I'm not too late to send this PM but course starts in 10 minuts :D

Hope you'll be there

Today:

  • audio
  • export
  • third party plugins
  • And answering all extra quesiton you can have

Live Here Chat Here

See you soon o/"

Roster
1. byakko
2. tekniko
3. cypherone
4. akisankaku
5. Von.Bednar
6. gauntgames
7. lefthandlemon
8. bpenticuff
9. rogueintegrity
10. jgallaher
11. texbob
12. itdevelop
13. kmilo9999
14. joao.reis
15. htejera
16. _allocate
17. DeathByMonkees
18. KoolPhoneApps
19. dyhaz
20. dyhaz
21. arashikun
22. Solotune
23. Aszuul
24. henriesteves
25. ercu
26. Yatryan
27. jeromyedge
28. poloik007
29. JPEG
30. rafastr
31. karagara
32. mmickyman
33. 6ru83r
34. seyfarth
35. pcfernandesjr
36. devilsportuguese
37. Snowfox17
38. DoctaWorm
39. budmademewiser
40. demiurge94
41. shadowman42
42. awesomejess
43. btw724
44. DoobieDoctor5000
45. josh0027
46. amik
47. hachiko
48. Mr_BoredinIowa
49. lordfroakie
50. jayvfman
51. sword_and_bored
52. miscreantik
53. tinf
54. leito
55. ChillPenguins
56. katekaos
57. Intricity
58. teddy_tesla
59. astrogirl4490
60. executive11
61. DestructoKnight
62. Djfuzion
63. subpoenaed
64. bionip
65. BillyWhizz
66. misseff
67. kristina1c
68. BoomWav
69. ankiseth
70. Kill0byte
71. moofasa16
72. alexbfree
73. ZaGunny
74. johnnym33315
75. McPluckingtonJr
76. LinusJac
77. mathme
78. Gypsy
79. kmajic
80. kuriharak93
81. dragshadow97
82. onkorhonak
83. Obligator
84. leo-rawr
85. rube203
86. Cameron
87. eltotehjosho
88. dolphinwrangler
89. fwinest_JediThug
90. sebbywebby
91. gigabein
92. bigticket21
93. cdav
94. Dome_Fossil
95. TC23
96. fmena
97. Trevellian
98. MartiniDeluxe
99. KarnageT
100. doom_bledore
101. woodywhatever
102. thesolartaco
103. namesaj
104. ICe287
105. h12321
106. Topher89
107. rustico
108. x1hiro
109. enygmaeve
110. mcgold1
111. Thraxamer
112. slethikk
113. dudewithpants
114. Boundsoy
115. rimrocka09
116. LepreCian
117. Crimsonowl1181
118. RainbowBlast
119. xCharlie
120. intrepion
121. justifun
122. sirtouch
123. DarkNightWing
124. asianwaste
125. thiz
126. cookie_partie
127. L-block
128. pearljam
129. nobeastsofierce
130. JJordizzle
131. TheHalcyonDays
132. RU_Pickman
133. lukeccby
134. KingTheQueen
135. kwhereareyou
136. snufflestheanteater
137. Bookwormser
138. tsunah
139. Schmeell
140. monotone_monochrome
141. jubeh
142. TheFlyWheel
143. fireman4490
144. Cynical_Walrus
145. Mousikos
146. Aaa_battery
147. Logan900687
148. blinkyasswhoremaster
149. OliverMller
150. Magrias
151. caribou
152. Posibot
153. Tomolonotron
154. excal
155. MajonaZ
156. ixireveng3ixi
157. InStim
158. rfry11
159. jbmoyer
160. lost_angel25
161. UpwardFall
162. thoy19
163. TheGreatRawr
164. omniaura
165. animemecha
166. outragedbroccoli
167. theKAR
168. j_g_9
169. vertigo5
170. ender998
171. Peruytu
172. uknojoe
173. drycek
174. mellivex
175. zaephyrion
176. Hainsley
177. sorenhauter
178. poopasaurus_rex
179. Gandah
180. LazarianParadox
181. Wazabbi
182. ruiisu
183. robloxley
184. caito9
185. Rudess
186. Vairsys
187. vixle
188. knoxyouout
189. MrBored4
190. ddyerkc
191. XxlovelesslostxX
192. Bramskyyy
193. ddeutsch
194. _hao
195. chaddles
196. igamersbox
197. Powin
198. 0illuminati0
199. dunsta
200. runnick
201. hbish
202. vectology
203. CatoftheCanal
204. gaelbeltran
205. javiusdey
206. dragoonblade99
207. fgutz
208. AHGetToDaChoppa
209. ahfckme
210. Nipponshin
211. threeheadedmonkey
212. clausvp
213. JAVA
214. the_egotist
215. Ericdu66
216. Nugglez
217. amxn
218. crix
219. mineet
220. Cerberus024
221. oxymoron
222. FPSEdward
223. cocopelad
224. thesgnl
225. lesox
226. garfieldbot
227. akoji
228. Darth_Bothersome
229. dotnetforce
230. redkush
231. Caileanj
232. Clockwork_Logic_Bomb
233. shade2300
234. Aikaryu
235. g-0ff
236. yahikoy
237. Blackhamer
238. vzhernovoi
239. lerib
240. emanuelmaues
241. Telyko
242. Moaz13
243. stanleylkm
244. dchronos
245. kurdi
246. Ursusphobos
247. almostlseek
248. TuckingFypeos
249. Orwin
250. linkage4
251. YaVs
252. MarteenGreen
253. kazian
254. Mckenz34
255. dudurel
256. bigbubbabob
257. mbortolino
258. newknuckles
259. Shabla
260. Hematite12
261. tyrzaraki
262. obsessionman
263. naatiq
264. chgogos
265. poke53281
266. bloodelves88
267. jamisongraves
268. eisbaer.borealis
269. mediapyre
270. planetyonx
271. jonjomckay
272. milster775
273. speechx8
274. Delynx
275. Fanakartal
276. dravenx
277. taix86
278. phantomism
279. Attack
280. RadicalBradical
281. Guisouro
282. cataureta
283. rampackwobble
284. jalexan
285. hyegye
286. babymumu
287. Baloucarps
288. Algrokoz
289. almeidamarcell
290. thiagohmcruz
291. bbriggs
292. zxcvbnm
293. jbrown2177
294. construct4me
295. aerger
296. Thatcrucible
297. tadpaul
298. McScruble
299. Sadri
300. Kiira
301. laughingdevil
302. conceptvangod
303. Aardvark03
304. LiteralGuy
305. sculptedpixels
306. RoastedMax
307. tarock
308. neufrin
309. Marcelo
310. TheSpooneh
311. gryph
312. atticusfaust
313. therealnickwebster
314. MattyjRulz
315. logan2847
316. Jodee
317. TheSuburbanHero
318. Heynim
319. Winda
320. SeanNoonan
321. gazoogle
322. hamrath
323. chrisriis
324. pklobucar
325. DannyBiker
326. MonDieu72
327. 2morrow4ever
328. andrecastel
329. Devincean
330. msc055
331. blasto
332. thetazzbot
333. hyem
334. p3pt
335. thecalmc
336. killermachine
337. Sentinel77
338. crosswalknorway
339. Seasky
340. Richard.Stennett
341. Sobieski74
342. Merries
343. Sugnolsutac
344. Talldub
345. spelster
346. Matty10209
347. rosareven
348. PatrickCG
349. AfternoonHoopla
350. artbane
351. zwarky
352. lazyasnguy
353. sdroadie
354. Animate
355. pdwilliamson5
356. gamezilla
357. ctceismc
358. talkshalk
359. BillyG
360. osamaraddad
361. Camuss
362. darktoad
363. Salvo776
364. nasty
365. NaiveEclectic
366. SmartEnoughToBeLucky
367. imouto
368. mella2424
369. tyfricko
370. perkiller
371. septeven
372. lotzalulz
373. Xavier
374. bert_makk
375. TacoKnight
376. viivoices
377. toto
378. morgangb
379. sqiddster
380. PerniciousPlatypus
381. jeff0
382. mrnewt
383. bakudas
384. arq.lnario
385. Ashesh
386. Ashesh
387. PeterMr
388. Ashesh
389. rsbrowndog
390. me_apps
391. duhtex
392. Hugoribas
393. EmpowerMe
394. Rhindon
395. jugwhisky
396. siks
397. yo_soggy_yo_jimbo
398. st1ckman67
399. austin.barber
400. bigmachinestudios
401. Wenaptic
402. Copperhaze
403. Genki
404. irfuzzy
405. thenightbunny
406. firestorm200
407. Imdavid
408. nighthawk70u
409. troxx
410. Ammarah
411. Ell223
412. miknuggets
413. farmerdwight
414. wrath1138
415. CodeJedi
416. SeriousAdam
417. plut
418. lucdima
419. CyberDagger
420. ggab
421. diegoorjuela
422. Jago55
423. gemaone
424. chillieguy
425. thegreatfoo
426. Ga5ch
427. Ragn0rus
428. realisticen
429. peteyboy100
430. EzekialQ
431. uniRedStudent
432. peterpimms
433. caseychourney
434. pepto_dismal81
435. mousematt
436. kakihara
437. DMTandME
438. klayman
439. cparlette
440. Bernard
441. zakchaos
442. Egonor
443. StarvingGameDev
444. The_Tnetennba
445. oh_wayne
446. daihenka
447. Lonesinger
448. windwalker
449. Figly
450. lukedirago
451. mr_cereal
452. BurtmacklinFBI
453. JH_1
454. edobacon
455. Aurus
456. Joskin
457. Radagar
458. Manodrizzle
459. Shiverx
460. kenli-z
461. runx
462. craigd
463. subsense
464. ViolentCheese
465. andyt315
466. glamb417
467. jasonomicon
468. doerie
469. Astuneta
470. MrM00se
471. Chrono32
472. furioustyles
473. freneticDynamic
474. aishiteru290
475. REDVWIN
476. ryanemm
477. Roelof1991
478. dracogriff
479. HansMikesen
480. clrammer
481. onzephyr
482. djoseph
483. kcpunk666
484. deckclubace
485. EdvinBitar
486. drappdev
487. rivadia
488. Islambekm
489. Wsoukkachang
490. tanfucious
491. smorenoe
492. iampolishokay
493. blazah99
494. SehWho
495. Jcdenton2030
496. bigheti
497. funkz
498. schmuxy
499. Pilot
500. bloatedhippo
501. 7Soul
502. ontheinfluence
503. agimptard
504. banana_party
505. rangelrmorais
506. sagar2253