Skip to content

A spiritual successor of Miniclip's Ores, made in C++ with SDL 2.0.

License

Notifications You must be signed in to change notification settings

kyuuzou/poison-strike

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Poison Strike 🚁

Version GitHub issues GitHub pull requests GitHub last commit

License: MIT

Description

A spiritual successor to Miniclip's Ores, made in C++ with SDL 2.0.

Gameplay Video

Gameplay Video

Disclaimer: the background and the boat textures are copyrighted placeholders, not included on this repository.

Why it Exists

In March of 2016, I was challenged by Miniclip to implement a clone of their classic game Ores. After a few days, Poison Strike came into being.

I had quite a bit of fun tackling this project, here are some technical details about it:

  • It is fully integrated with Tiled Map Editor's TMX files. Each screen of the game corresponds to an xml file completely editable on Tiled, including every game object, from the background to the UI.
  • It is also integrated with TexturePacker, a tool for compiling textures into an atlas. The atlas' accompanying xml is parsed by the game, and each texture is mapped to the game object parsed from Tiled, via two custom properties (defined on tiled) called AtlasID and TextureID, associated with each game object.
  • Some of the textures had an incorrect sRGB profile, and SDL didn't like that, so I created an MS-DOS batch file which removes the invalid profile from the textures, via PNGCrush.
  • Some of the design patterns on this project: a State Machine for navigating the game, an Object Factory for creating the game objects, a Service Locator for low coupling, a Command Pattern for mapping actions to the UI.
  • Most of the sounds were generated on Bfxr (this part was fun).
  • I edited the sprite placeholders on Gimp (this part was even more fun, and I spent more time doing this than I'd want to admit).
  • Finally, the game has an unintended easter egg, which I left in because I ended up liking it: since the titles for each screen are made out of boxes, the player can wreak havoc on the title by clicking (and consequently destroying) the boxes.
  • For managing the parallel builds on different operating systems, I used a simple Dropbox folder, to synchronize the Visual Studio and Xcode projects in real time, between my PC and Macbook.
  • Finally, on the Windows version, "Visual C++ Redistributable for Visual Studio x86" is statically linked, so the user does not need to have the libraries previously installed.

Dependencies

Folder Structure

.
├── SDLSandbox    # Main project, for Visual Studio 2015 on Windows
├── OSX           # Secondary project, for Xcode on OSX. Links to SDLSandbox's source and assets.
├── LICENSE
└── README.md

Version History

  • 0.1.0
    • Initial Release (version submitted to Miniclip)

Contacting the Author

License

Copyright © 2016 Nelson Rodrigues.
This project is licensed under the MIT License.

Acknowledgments

@Farious took on this challenge as well! Check it out: Farious' GemBreaker

About

A spiritual successor of Miniclip's Ores, made in C++ with SDL 2.0.

Resources

License

Stars

Watchers

Forks

Packages

No packages published