My name is Elia Morling, and I run a company based in Sweden. I am developing an indie game, and need help to make a first basic version of a third person isometric tile engine.
If you’re interested in freelance work, then please send me your offer with the following information.
- Your CV
- Prior experience of programming with jMonkeyEngine
- Prior experience of programming games
- Your offer as a fixed price, see below specification
- Your hourly rate that applies for unspecified extra features
- Timeplan for completion
Please make sure you meet these requirements:
- You must have communication skills, check your e-mail regularly, and be able to adjust to feedback
- You must be able to provide an invoice from a registered company, or you will be subject to swedish income tax and fees (approx 50%)
- You must know Java
- You must know jMonkeyEngine
- You must know how to make UML diagrams
- You must know how to make an API
- You must provide rights to use and change your code in any way seen fit, for use in now known and all future media
I am accepting offers until 11th of March, and after that I will make a selection. Upon selection your first task will be to make an UML diagram and an API.
You may send your offer, or any questions to: freelance@tribaling.com
This is a simple specification, because I want you to easily grasp the contours of this project. Features that are not listed here are considered “extra features”. Don’t hesitate to drop me an e-mail with your questions. You may also suggest features or changes that you find missing.
1. Coordinate system
- a tile grid where 0,0 is at the top left, and +x,+y is the bottom right
- 0,0 is the center of the tile
- actors are not restricted to tile center, but can move and stand at any floating point numbers
2. Game Map
2A. About game maps
- Maps have a maximum size of 400 x 400 tiles
- Each tile does not need to be it’s own node, unless the desired features require it
- Maps are per default flat with a default terrain texture
- Maps can have any number of layers which can define height and texture per tile
- Map layers can have any shape (for this version rectangular layers is fine)
- Map layers can be set override each others heights and textures
- Types of map layers are:
flat
heightMap (with or equivalent to AbstractHeightMap and ProceduralTextureGenerator)
water (animating)
2B. Functionality
2B1. Map factory
- create a map with id, width, height and default terrain texture
2B2. Map manager
- add a map to manager
- rem a map from manager
- get a map from manager with id
2B3. Map layer factory
- create a map layer with id, width, height and type (only rectangular now, but irregular in future)
2B3. Map
- add a layer to map
- rem a layer from map
- get a layer from map with id
- add an actor to map
- rem an actor from map
- get an actor from map with id
3. Actors
3A. About actors
- Actors are basically all things that can exist in a map, e.g. avatars, items and props
- Actors can be a Box (default), Cylinder or 3D Model
- Actors are centered at their base, so that they are standing in the middle of a tile
- Actors can be set to cast shadows
- Actors can be set to have collision detection with other actors
3A. Functionality
3A1. Actor factory
- create an actor with type: Box (default), Cylinder or 3D Model
3A2. Actor manager
- add an actor to manager
- rem an actor from manager
- get an actor from manager with id
4. Actor movement
- move actor within map to x,y with interpolation
- move actor within map to x,y instantaeously
5. Camera
- Four types of cameras:
isometric lockcam, locked on a tile
isometric chasecam locked on an actor
isometric freecam, not locked to an actor, but always parallell to the ground
freecam, total freedom, not locked to anything
6. Control
- set actor to control with arrows or chasecam
- remove actor control
7. Input
- Detect mouse-click on tile, generates event to listeners
- Detect mouse-click on actor, generates event to listeners
- Arrow keys, to move actor under control