 |
Project Looking Glass subject #102 - 3D Desktop Games
Background:
What would a graphical desktop environment be with out a set of tiny addictive games? Well... Not as good as it could be with them... I think that if there comes a set of good programs / games bundled with the Looking Glass Desktop more users will be encuraged to use it. To simplify for other users who wants to develop a game, or perhaps just some cool looking application, for Project Looking Glass I intendt to write a game core that are suited for lg3d's 3D environment and to this API apply some games: Rubik's Cube, 3D-minesweeper and3D-Tetris. And if everything goes well, maybe some other brick game or even a 3D-Cannon game.
Description / Deliverables:
- Framework with API
- The most important aspects of these games is that they shall be a part of the desktop and they shall be 3D. To do this, I will develop a "brick-game" framework on to which simple games can be applied. This framework will provide a graphical application with an object based on a 3d-matrix shape, recall a rubik's cube but larger and not a cube ;). At everyposition in this matrix, there can be a texturable cube. It will be possible to turn / flip / rotate / move the graphical object in any direction or to any position with animation and to direct access (click on) all the visible objects in the main object. This framework is the core of the project, most time will be spent on making it look good, have a nice controll and a good well documented API that can serve as a base for other game developers.
- On to this framework an application with the logics of the game can be applied using the API. The minesweeper, rubik and tetris games will be based on it. The application shall of course be embedded with the lg3d desktop and not be a stand alone application. The purpose of the games is that they both serve as demos of the framework and fully playable games to be a part of the lg3d distribution.
- 3D minesweeper with manual
- 3D-minesweeper. This will be cool. The classic minesweeper game but this time the user has to sweep a box in search for mines instead of a field. The user starts with a block of some configurable size ( for example 7x5x5, but if the user wants to play a game of standard minesweeper, just set the size of any of the axes to 1. This will result in a 2d version. ) of cubes. A cube can either be empty or contain a mine. The game then works like the classic, the cubes without mines displays the number of mines in all adjecent cubes.
- The user can do three things with each block. He either opens a cube, if there is a mine its game over, otherwise the cube "opens" and displays the number of adjecent mines. Or if the user thinks there is a mine in a cube he can either mark it as "mine", then nothing happens besides that the cube is marked, or remove it completly. If a cube is removed as a mine but was empty then the game is over. The game is won when all cubes except the ones with mines has been opened or when all mine cubes has been removed. The number of adjecent mines are dynamicly recalculated as mines are removed.
- Rubik's cube with manual
- The Rubik's Cube will be a simple cube of arbitrary size ( of course the standard choice would be 3, but why not try a larger cube.) with selectable colors, tiles or a texture on each side of the cube. When the program starts, the cube starts solved or maybe it starts in the position the game was left. ( when a new size is set, the cube is shown solved ) The user can at anytime make a random shuffle of the cube to get a random state to solve. Now the user can rotate the cube to look at it from any angle he likes and start rotate the layers. There is no winning or loosing in this game, When the puzzle has been solved, the user can shuffle it again. Maybe a timer?
- 3D tetris with manual
- 3D-Tetris will be based on the same framework as the others but will have the least prioroty in the sense of time. The game is standard tetris with all the classic 4-part-blocks but in three dimensions instead of two. Now you can flip the blocks around all of the x, y and z-axes instead of only the z-axis which is the case in original tetris. Customizable height, width and depth of the tetris-"container" can leave you with an instance of standard tetris. The only game mode i plan to implement initially is a standard mode with an empty container and dropping blocks.
Schedule:
The accepted proposals are revealed early in week 21. This is perfect since I have my last exam that week. After May 26'th, (that would be friday week 21) I can start working full time on the project. The ultimate deadline is Aug 21'st. This gives me a total of 13 weeks of coding but since one always encounter problems I should set up my own deadline 3-4 weeks earlier. Then I can use the last ones for testing and bug-fixing. Here is an approximate week schedule:
- week:
- ->21 - When there is time, investigate LG3D? as much as possible.
- 21 - Finish my studies, Continue learning LG3D?, I will do this through out the entire project.
- 22-25 - Beginning to design / implement the core of the block games framework
- 25 - Implementing the core, start designing 3D-Minesweeper, Rubik's cube and 3D-Tetris
- 26 - framework prototype completed.
- 26-27 - Implement 3D-minesweeper, write manual. Tune framework...
- 28-29 - Implement Rubik's cube, write manual. Tune framework...
- 30-31 - Implement 3D-Tetris , write manual
- 31 - API completed, Three demo games completed.
- 31-33 - Testing, fixing.
Short personal description:
I am a master student of IT at Chalmers University of Technology. My professional interests include AI, optimization algorithms and other adaptive systems such as neural networks. I aim to become a an optimization / AI software developer / programer hopefully within the game business. I have been highly involved in several projects including one commercial. Beside this I like sports and playing music
Major languages: Java, Python
Milestones:
- 1983: Born in Mölndal, Gothenburg, Sweden
- 2002-2003: Completed my military service at LV6, Halmstad, Sweden as co-responsible for the staffs information system including WindowsNT? and SQL-databases.
- 2003, Aug: Began Studies at the school of Information Technology at Chalmers University of Technology.
- 2006, May: Finished three year of studies including alot of computer science and math.
Previous Project Participation:
- 2004:
- CatchIT? ( team of 4 ):
- Developed a 2 player network based strategy turnbased board game in Java. The idea was to implement the concept of fog of war in to a board game, which is impossible in a real board game, hence the player can only see the tiles close to his units. Each player starts with a set of units, there are 4 different kinds of units each with different properties like sight, movement etc. The goal is to either kill all the opponents units by simple chess-style step on them or to catch the opponents flag. The game board is built up with hexagonal tiles. The tiles can be Forrest, mountain, water, etc. which affects the unit differently.
- 2005:
- Weld1 ( team of 3 ):
- Developed a software for a welding company. The software, that should replace their current paperbased documentation with a specified GUI using a mysql database, were written in PHP. The web-browser based GUI provided easy editing and searching the database
- 2005:
- Splatt ( team of 6 ):
- Created a tool to simulate the traffic flows and congestions in a complex roadcrossing. The sofware is a general traffic simulator using autonomous agents as actors but in this case we applied it to a famous crossing in Gothenburg called korsvägen. We created an a* map of the crossing which our agents followed.
- 2006:
- DREAD ( team of 7 ):
- An automatic taxi scheduler system / Test world with dynamic trafic flow. The test system is a world with addresses ( nodes ) and roads ( edges ), on these traffic and taxi cabs are simulated. It also generates events like customer orders etc... The scheduler system recieves the events via an interface, that later could be replaced by some kind of terminal for real use, and redirects the taxis in a good way.
- 2005-2006:
- Weld1 - revisited ( team of 3 ):
- Currently developing a rewrite of the Weld1 project using Python + wxPython. This time we wanted to do a more flexible object oriented system in which features could be more easily integrated. It has reached the beta phase and is at the company for a first evaluation.
All source code is available and will be provided on request.
-- edited - 07 May 2006 9:38 AM CET
|