Repository for the module “Prototyping interactive media-applications and games” at Furtwangen University
In this course, students learn fundamentals of game engines and development environments for prototyping. They learn basic development patterns used in highly interactive applications such as animation, transformation, object relationships and event control. We analyse concepts for complex applications or simple games, plan the realisation of core features and create executable prototypes for demonstration. In the end, students design their own piece of art and produce it themselves.
The environment we work with is FUDGE, the Furtwangen University Didactic Game Engine/Editor, which allows for optimized tuition and collaboration, while demonstrating the fundamentals of popular engines like Unreal or Unity. Students acquainted to FUDGE can easily shift over to these mighty tools later on. Coding language is TypeScript
This is experimental material created by the docents during the PRIMA-lectures while explaining some core functionalities the course was working on. Usually, we examine one 2d and one 3d application. These are not fully functional and self explaining prototypes.
Semester | 2D | 3D |
---|---|---|
W22 | Mario | Starfox |
S22 | Pacman | Slenderman |
W21 | LaserLeague | MarkusCart |
S21 | SpaceInvaders | PhysicsGame |
W20 | BreakOut | Doom |
S20 | Snake | TowerDefense |
W19 | Pong | Craftris (3D-Tetris) |
© Prof. Dipl.-Ing. Jirka R. Dell’Oro-Friedl, HFU
Nr | Criterion | Explanation |
---|---|---|
1 | Units and Positions | Where is 0, what is 1? Explain your setup of coordinate systems of the entities. |
2 | Hierarchy | Explain the setup of the graphs and the advantages you gain by it. |
3 | Editor | Use the visual editor and explain which parts are better done by coding and why. |
4 | Scriptcomponents | Use scriptcomponents and explain if they were useful in your context or not and why. |
5 | Extend | Derive classes from FudgeCore other than ScriptComponent and explain if that was useful in your context or not and why. |
6 | Sound | Use sounds and explain your choice of sounds and placement in respect to the user’s perception. |
7 | VUI | Create a virtual user interface using the interface controller and mutables. Explain the interface. |
8 | Event-System | Use custom events to send information that propagates along the graphs hierarchy and explain if that was useful in your context or not and why. |
9 | External Data | Create a configuration file your application loads and adjusts to the content. Explain your choice of parameters. |
A | Light | If light is required, explain your choice of lights in your graphs (1) |
B | Physics | Add rigidbody components and work with collisions (1) and/or forces and torques (1) and/or joints (1) |
C | Net | Add multiplayer functionality via network (3) |
D | State Machines | Create autonomous entities using the StateMachine (1) and/or ComponentStateMachine (1) defined in FudgeAid |
E | Animation | Animate using the animation system of FudgeCore (1) and/or Sprites (1) as defined in FudgeAid |
The criteria 1 to 9 are mandatory and yield 1 point each. Choose from A to E for additional points as noted in brackets. One aspect of your application may not fullfill multiple criteria. The final grade may deviate up to one grade from the calculation to reflect excellent aspects or flaws of your work.
Points | 10 | 11 | 12 | 13 |
---|---|---|---|---|
Grade | 4.0 | 3.0 | 2.0 | 1.0 |
Create a short concept in advance, in order to verify how to implement the criteria above. Try to use graphics for visualisation and presentation in class, that will help you explain your game or application. No need to write lengthy text, you need to present quickly.
While you are working on your assignment, gradually extend your concept sketches to become your design documentation.
If you’d like to see youra application in the exhibition “GameZone”, add the following