-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. mbortolino
257. newknuckles
258. Shabla
259. Hematite12
260. tyrzaraki
261. obsessionman
262. naatiq
263. chgogos
264. poke53281
265. bloodelves88
266. jamisongraves
267. eisbaer.borealis
268. mediapyre
269. planetyonx
270. jonjomckay
271. milster775
272. speechx8
273. Delynx
274. Fanakartal
275. dravenx
276. taix86
277. phantomism
278. Attack
279. RadicalBradical
280. Guisouro
281. cataureta
282. rampackwobble
283. jalexan
284. hyegye
285. babymumu
286. Baloucarps
287. Algrokoz
288. almeidamarcell
289. thiagohmcruz
290. bbriggs
291. zxcvbnm
292. jbrown2177
293. construct4me
294. aerger
295. Thatcrucible
296. tadpaul
297. McScruble
298. Sadri
299. Kiira
300. laughingdevil
301. conceptvangod
302. Aardvark03
303. LiteralGuy
304. sculptedpixels
305. RoastedMax
306. tarock
307. neufrin
308. Marcelo
309. TheSpooneh
310. gryph
311. atticusfaust
312. therealnickwebster
313. MattyjRulz
314. logan2847
315. Jodee
316. TheSuburbanHero
317. Heynim
318. Winda
319. SeanNoonan
320. gazoogle
321. hamrath
322. chrisriis
323. pklobucar
324. DannyBiker
325. MonDieu72
326. 2morrow4ever
327. andrecastel
328. Devincean
329. msc055
330. blasto
331. thetazzbot
332. hyem
333. p3pt
334. thecalmc
335. killermachine
336. Sentinel77
337. crosswalknorway
338. Seasky
339. Richard.Stennett
340. Sobieski74
341. Merries
342. Sugnolsutac
343. Talldub
344. spelster
345. Matty10209
346. rosareven
347. PatrickCG
348. AfternoonHoopla
349. artbane
350. zwarky
351. lazyasnguy
352. sdroadie
353. Animate
354. pdwilliamson5
355. gamezilla
356. ctceismc
357. talkshalk
358. BillyG
359. osamaraddad
360. Camuss
361. darktoad
362. Salvo776
363. nasty
364. NaiveEclectic
365. SmartEnoughToBeLucky
366. imouto
367. mella2424
368. tyfricko
369. perkiller
370. septeven
371. lotzalulz
372. Xavier
373. bert_makk
374. TacoKnight
375. viivoices
376. toto
377. morgangb
378. sqiddster
379. PerniciousPlatypus
380. jeff0
381. mrnewt
382. bakudas
383. arq.lnario
384. Ashesh
385. Ashesh
386. PeterMr
387. Ashesh
388. rsbrowndog
389. me_apps
390. duhtex
391. Hugoribas
392. EmpowerMe
393. Rhindon
394. jugwhisky
395. siks
396. yo_soggy_yo_jimbo
397. st1ckman67
398. austin.barber
399. bigmachinestudios
400. Wenaptic
401. Copperhaze
402. Genki
403. irfuzzy
404. thenightbunny
405. firestorm200
406. Imdavid
407. nighthawk70u
408. troxx
409. Ammarah
410. Ell223
411. miknuggets
412. farmerdwight
413. wrath1138
414. CodeJedi
415. SeriousAdam
416. plut
417. lucdima
418. CyberDagger
419. ggab
420. diegoorjuela
421. Jago55
422. gemaone
423. chillieguy
424. thegreatfoo
425. Ga5ch
426. Ragn0rus
427. realisticen
428. peteyboy100
429. EzekialQ
430. uniRedStudent
431. peterpimms
432. caseychourney
433. pepto_dismal81
434. mousematt
435. kakihara
436. DMTandME
437. klayman
438. cparlette
439. Bernard
440. zakchaos
441. Egonor
442. StarvingGameDev
443. The_Tnetennba
444. oh_wayne
445. daihenka
446. Lonesinger
447. windwalker
448. Figly
449. lukedirago
450. mr_cereal
451. BurtmacklinFBI
452. JH_1
453. edobacon
454. Aurus
455. Joskin
456. Radagar
457. Manodrizzle
458. Shiverx
459. kenli-z
460. runx
461. craigd
462. subsense
463. ViolentCheese
464. andyt315
465. glamb417
466. jasonomicon
467. doerie
468. Astuneta
469. MrM00se
470. Chrono32
471. furioustyles
472. freneticDynamic
473. aishiteru290
474. REDVWIN
475. ryanemm
476. Roelof1991
477. dracogriff
478. HansMikesen
479. clrammer
480. onzephyr
481. djoseph
482. kcpunk666
483. deckclubace
484. EdvinBitar
485. drappdev
486. rivadia
487. Islambekm
488. Wsoukkachang
489. tanfucious
490. smorenoe
491. iampolishokay
492. blazah99
493. SehWho
494. Jcdenton2030
495. bigheti
496. funkz
497. schmuxy
498. Pilot
499. bloatedhippo
500. 7Soul
501. ontheinfluence
502. agimptard
503. banana_party
504. rangelrmorais
505. sagar2253