| Abstract | |
| Game Title: | Lego Dynasty Warriors |
| Development Team Members: | Chia-Chun HU, Xunyu Wang |
| Game Genre: | Tactical Action / Fighting Game |
| Brief Description: | In this game, you can customize the appearance of your character. Different body parts have different visual effects. After you pick what your character looks like, you enter the main game, where skeleton enemies will constantly appear and attack the player. You can use two abilities to defeat the skeleton enemies and try to survive as long as possible. Everytime you kill an enemy, your hp and energy bar will increase. While your energy bar is full, you can release your players "extreme attack". If your hp decreases to 0, the game is over. |
| Overview | |
| Game Story / Objective: | The game is based on another popular video game called Dynasty Warriors. The mian idea is let the players release the stress by killing an endless number of enemies. |
| Game Mechanics + Controls: | Start: Space bar- Enter Character Creation Character Creation: Up/Down- Choose the body part to change Left/Right- Change the appearance of the body part z- Enter Main Game Main Game: Up/Down/Left/Right- move your character forward, backward, turn left, and turn right z-scare enemies x-attack |
| Technology: | Engine: We used Panda3D engine which uses the Python scripting language. Collision Detection: This game uses collision spheres from the Panda3D libraries. For each attack between the player and the enemies a collision sphere is created for a short time and if a collision happens during this time, the attack is successful. Also, each frame the distance between enemies is checked, and if they are too close to each other they are moved away from one another. Physics: To keep enemies on the floor, this game casts rays from above each enemy and the player and keeps them on the ground. AI: This game uses a direct AI that just moves the enemies towards the player every frame and attacks, except when the extreme is happening. |
| Aesthetics: | We used Maya3D to build the models and animations, Adobe Audition to design the sound, and used egg conversion software to generate the model and animation egg file. |
| Media | |
| Screenshots: | http://www.andrew.cmu.edu/user/chiachuh/screenshot1.bmp http://www.andrew.cmu.edu/user/chiachuh/screenshot2.bmp http://www.andrew.cmu.edu/user/chiachuh/screenshot3.bmp http://www.andrew.cmu.edu/user/chiachuh/screenshot4.bmp http://www.andrew.cmu.edu/user/chiachuh/screenshot5.bmp |
| (Optional) Download: | http://www.andrew.cmu.edu/user/chiachuh/gdw.rar |
| Development Summary | |
| CODE: | Main.py enterSelectChar: call def stepup, stepdown, stepleft and stepdown to choose the lego character feature. enterMainGame: call ground collide, set lego character attack and movement handle_remove_unit: recover system for the lego character create_enemy: make the enemies non-stop coming out Player.py class Player: set up the lego character information. lego character life system and attackA(attack), attackB(scare), to ground collision and update class Enemy: set up enemies imformation, AI, to ground collision and update. World.py class World: set the world information. class DamageField: creat the collision sphere WLoader.py Load 3D models and textures |
| CONTENT: | Sound: record from the Dynasty Warriors 4 video game then modified. Lego Model and texture: built by Maya3D World Model and texture: download from Panda3D sample Roaming Ralph |
| Reflections | |
| Three Greatest Challenges: | Creating the model, as neither of us has experience with builing 3D models. Making animations according to the way Lego characters would move. We had some problem with ground collision detection and players / enemies going through the trees. While we were making the ground and character models, we set some map information inside the ground model so that we could avoid this problem. |
| Three things that went right: | Character creation. We wanted to let the players choose the features that they wanted for their own character, which we did. We made it so that it would be easy to swap body parts, and all we had to do was create new assets to be able to add the new features. So, now all we have to do to make more features is create new textures and then load them in the code. Lego Animation. We wanted the lego character's movement to be smooth and funny, which we feel we did. It was difficult to find an animation that was appropriate to the Lego character that was also funny, but we ended up allowing the players to scare the enemies,which we think people found funny. Recover system. Because the enemies will keep coming out, we modified the hp calculation to prevent the game over too soon. As long as the lego character kills one enemy, his hp value will increan a little bit back. So this game won't frustrate players. |
| Three things that went wrong: | We had a lot of ideas and animations that couldn't be implemented One of us had to go on a trip to Japan for another class, and in Japan there were internet access problems, so it was very difficult to schedule time for working. The collision between characters. The collision sphere that we used for attacks doesn't prevents the enemeis or characters from going through them, so the enemies could potentially get close to the character and hit him, while the player can't hit them back. So, sometimes you can see the enemies weapons go through main character's body, but the main character still can't hit them.
|
| Other final thoughts: | If we had more time, we would like to add more variation to the body parts for our main character.We also would like to add facial features as an option to allow different expressions. Lessons Learned- We wanted to make the game funny, but in order to do so we needed to create more visual assets, which took away from our programming time. If the animation wasn't funny at all, then no matter how good the game mechanics were, the game still wouldn't be funny. With the limit time, we really needed to schedule well, but in the beginning we spent too much time building the model and animation, and in the end, we didn't have time to add those animations and models in. If we were to start over again, we would try harder to balance out the time spent between creating art assets and coding. |