KISS-DemosAndGames
Introduction
In order to showcase the EFL and have some real development fun, let's create some very simplistic yet cool demos and games. The purpose is not to have a framework, a multiplayer-world-scalable game... rather have a nice good old days demos that developers have fun to develop. If we have to set a rule to motivate: make the code as small and simple as possible! Of course people are free to later improve their babies to do fancy stuff, but the rule of thumb is to have something usable in less than one day!
Hint: as you should use EFL, do all your code in an even driven way! That means you should call some functions to change the game state when events happen, be them mouse, keyboard or timeouts. This makes easier for later change of keyboard to mouse interaction and even introduction of network play.
Demos List
Sounds: can be produced with emotion, libcanberra or directly with any multimedia library such as gstreamer or xine. It is recommended to use emotion or libcanberra as they are super-easy to use.
Annoying Sounds
Plays one of more annoying sound when activated (iFart/vuvuzela like)
- Required skills: basic (elementary)
- Proposed development time: short (<1h)
Slap the bitch
Interact with an actor (your favorite hated pet, coworker, classmate) making him suffer
- Required skills: basic (elementary)
- Proposed development time: short-medium (1-2h)
Kill the bugs
Kill the stupid bugs as they appear on your screen (xbill like)
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
Games List
These games should be very simple, yet they are addictive and people from all ages like them. They are very handy for a phone or desktop.
Development hint: try to isolate the game core logic. This does not mean you should create a framework or predict all the usage cases in the world (IOW: don't overengineer it!), but try to isolate game state inputs and outputs, for instance call functions like "player_input_moved(+1, -1)" then update it with "pad_move(+100, -50)". You're free to use globals and any handy context you want.
Goals: do not allocate memory for the game logic, they are often fixed and known beforehand.
Sounds: can be produced with emotion, libcanberra or directly with any multimedia library such as gstreamer or xine. It is recommended to use emotion or libcanberra as they are super-easy to use.
Network play: although many mention a network play, before doing that, please take the time to create a simple lib using ecore-con to announce and find peers, that will save duplicate code.
Input method: choose the easiest method that you will use, don't try to cover all in one or you'll end with none! If you think mouse is fine, then mouse it is (ie: board games where you have to pick stuff). If you think keys are better, then keyboard it is (ie: action games where you need repetitive fast responses like jump). If you do a nice core, then you can always provide a different version of your game later with a minimum set of #ifdefs or runtime toggles.
Screen Resolution: nowadays it's hard to predict the resolution someone will use, and how to adapt to it. For instance some games may scale proportionally, while others may just increase the scene viewport. Don't try to couple with them all or you'll end with none! Choose one and stick to it. If you did a nice game core, then you can always create a different version of your game later with a minimum set of #ifdefs or runtime toggles.
Tic Tac Toe
http://en.wikipedia.org/wiki/Tic-tac-toe
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
- Extra goals: do not allocate memory for the game logic
- Further extensions: network play
Bejeweled
http://en.wikipedia.org/wiki/Bejeweled
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
- Extra goals: always check if your initially provided board is not solved already; check if it is impossible to solve it
- Further extensions: network play; provide solve hints (counted to avoid abuses)
Sudoku
http://en.wikipedia.org/wiki/Sudoku
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
- Further extensions: provide solve hints (counted to avoid abuses)
Minesweeper
http://en.wikipedia.org/wiki/Minesweeper_(computer_game)
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
- Further extensions: provide solve hints (counted to avoid abuses)
Connect the Dots
http://orion.math.iastate.edu/danwell/MathNight/ppg.html
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
Simon (Genius, Bliken)
http://en.wikipedia.org/wiki/Simon_(game)
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
Tetris
http://en.wikipedia.org/wiki/Tetris
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
- Further extensions: provide solve hints (counted to avoid abuses)
Arkanoid
http://en.wikipedia.org/wiki/Arkanoid
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
Enduro
http://en.wikipedia.org/wiki/Enduro_(video_game)
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
Infinite-run games
This one have some actions like jump or slide, the scene moves constantly and the player have to avoid traps and get as many points as possible. Traps are generated randomly so user don't get bored
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-2h)
- Example: http://www.mail-archive.com/enlightenment-devel@lists.sourceforge.net/msg27438.html (just rectangles, needs actual images)
Side-scrolling games
http://en.wikipedia.org/wiki/Side-scrolling_video_game
Based on a loadable game plan, the player walks in it to get as many points as possible and find the exit on the other side. Loadable game plan can be a text file with pre-defined characters to define the components such as walls, passages, bonus, traps, etc
- Required skills: basic (elementary, edje)
- Proposed development time: medium-large (2-12h)
- Further extensions: specify barriers that depend on user finding some specific element before he is allowed to go further.
Netwalk
http://www.beiks.com/palm/netwalk.htm
http://code.google.com/p/netwalk/
- Required skills: basic (elementary, edje)
- Proposed development time: short-medium (1-1.5h)
Imported from https://trac.enlightenment.org/e/wiki/KISS-DemosAndGames
History:
1 barbieri 2010-09-06 10:18:03
2 dmn9 2010-09-14 18:24:40 May I add game that I would like to be developed in EFL?
3 barbieri 2010-11-15 16:36:56
- Last Author
- beber
- Last Edited
- Sep 5 2013, 2:30 PM
- Projects
- None
- Subscribers
- None