Every Step to develop a game from scratch and release it on Steam

Break Arcade Games Out

What if Breakout was the only arcade game people could make? An open-source game, written entirely on a live stream.

Hello everyone! [img]{STEAM_CLAN_IMAGE}/35693360/f7b835af7354a9f14c86827cd84cefa167eff295.gif[/img] In the course of 24 livestreams, we development a game from scratch, going from having absolutely nothing to having a game released on Steam! In these 24 livestreams (a total of 81 hours of development), there is a LOT of good information for you, so I decided to organize it and list the main topics discussed throughout the development. Kind of a step by step of what we did to develop the entire game. Hopefully it can help you and point you in the right direction! [previewyoutube=sRN-mXLInLY;full]https://www.youtube.com/watch?v=sRN-mXLInLY[/previewyoutube] Steps taken to create the game: Episode 1: Planning what to make Making a "Hello World" to test Win32 Entry point Opening a Window First version of the Software Renderer Input Timings Episode 2: First gameplay prototype Start organizing the code Simple AABB collision Full sweep collision (ball vs blocks) Episode 3: Gameplay experimentation Structure to add new levels and change rules Episode 4: Finish the game code refactoring Add several game mechanics Episode 5: Adding the original game design idea Designing some levels to start iterating Implementing a Random Number Generator algorithm Episode 6: Created Logging system Fixed bugs Making the game more robust and solid Episode 7: Game Feel (animations, ball trails, player feedback) Episode 8: Full Particle System More animations Improving the Controls Bug fixing Episode 9: Engine robustness pass Drawing rotated rectangles Episode 10: Drawing bitmaps Subpixel accuracy Drawing floats Unique random seeds Visual Effects Episode 11: Sound System Playing a Square Wave Reading .Wav files Audio mixer (panning, pitch shifting) Episode 12: Fixed audio bugs Multithreaded Programming: Job System Started to make things run asynchronously Episode 13: Implemented a Main Menu Implemented a Save System Started implementing the Sound Effects Fixing more bugs Episode 14: Added lots of sounds Tweak the game's feel Improved the existing systems Episode 15: Major visual and experience improvements Game HUD Draw Text support Episode 16: Bug solving Created a Profiler Analyzed the data and discussed optimization possibilities Optimized the game (5x faster!): Hit the 4k at 60fps target Episode 17: Solidified the player's movement and animations More frame-rate independent Game sleep (fixed frame-rate) General sound and gameplay improvements Episode 18: Designed and implemented a new Level Improved existing systems to support what we wanted to do Game design iteration Episode 19: Redid the entire collision system (Shippable version) Camera system Screenshake Episode 20: Wrapping up the gameplay Fine-tuning the levels Implemented animated level transitions Episode 21: Asset System Package File spec Cooker/Packager Tool Ogg Reader Async Asset loading and decompressing Episode 22: Final polish Small tweaks and bug-fixing Adding a config file (parsing, reading and changing data) Exposed Mouse sensitivity to players Exposed Windowed mode to players Starter audio refactoring to make it shippable Episode 23: Finishing the game! Some hardcode assembly debugging Nice restructuring of the Audio Mixer (robust and thread-safe) Final gameplay tweaks, improvements and polish Episode 24: Releasing the game on Steam! Relax, Celebrate Plan for what's next (this project and other projects) That's it! I hope you enjoy it! Let me know if you have any questions! :D Watch all the livestrems: https://www.youtube.com/playlist?list=PL7Ej6SUky1357r-Lqf_nogZWHssXP-hvH