Gamedev:Main: Difference between revisions

From Spring
Jump to navigationJump to search
Flozi (talk | contribs)
Copy from current page
 
Flozi (talk | contribs)
m →Animation of units: link to examples
 
(42 intermediate revisions by 8 users not shown)
Line 1: Line 1:
[[Engine_Development|Development]] < {{FULLPAGENAME}}
[[Engine_Development|Development]] < {{FULLPAGENAME}}


=Game development=
= Game Development =
This information is meant to help newcomers learn how to develop their own games for the Spring Engine.
This information is meant to help newcomers learn how to develop their own games for the Spring Engine. If you are interested in creating maps for Spring, see [[Mapdev:Main]].


= Templates & Examples =
* [[Gamedev:SpringABC|SpringABC]] - A hierarchical set of empty template games, without examples
* [[SpringTutorialGame|Spring Tutorial Game]] - A tutorial template game with full examples
* [[Gamedev:PublicRepos|Public Repos]] - Publicly readable Spring game code repositories


==General==
= Technical Documentation =
* [[Map,_Mod,_And_Unit_Development_Programs|Development Tools]]
== GameData ==
*[[Game structure]]<br />
* [[Armordefs.lua]] - armor classes
*[[Game specification|Game specification]]<br />
* [[Icontypes.lua]] - strategic unit icons
*[http://answers.springlobby.info/ Q&A Site for the Spring Engine]
* [[Modinfo.lua]] - game identifier file (name, version,...)
*[http://springrts.com/phpbb/viewtopic.php?f=14&t=26409| Porting TA content to Spring]
* [[Modrules.lua]] - Global game variables
 
* [[Movedefs.lua]] - MoveClasses for pathfinding
==Resources==
* [[Resources.lua]] - index file for textures
*[[General_Resources|Free Assets]]
* [[Sidedata.lua]] - playable factions/races/sides
*[[SpringTutorialGame|Spring Tutorial Game]] - (attempt to create) a "template game" for new projects.
* [[Sounds.lua]] - index file for sounds
*[[LUPS]]
* [[Messages.lua]] - Team death messages {{new|95.0}}:deprecated
*[[Chili]]
*[[IceUI]]
*[[RedUI]]
*[[LOLUI]]
*[[Map Making: Feature Placer|Feature Placer]]
 
==Reference==
*UnitDefs (.fbi, .lua)
**[[Units-UnitDefs|UnitDefs]] - define the attributes of units
**[[Unit_Categories]] - define which weapon type aim at which targets
**[[Unit_collision_volumes | Unit Collision Volumes]] - collision detection
*WeaponDefs (.tdf, .lua)
**[[Units-WeaponDefs]] : define the attributes of weapons/projectiles
**[[Units:WeaponMainDir]]
**[[Weapons:Antinukes]]: All about antinukes.
*MoveDefs
**[[Units:MoveTypes]]
*FeatureDefs (objects on the map, wrecks of destroyed units)
**[[Units-FeatureDefs]]
*Global game variables (modrules.lua)
**[[Modrules.lua]]
*[[CEG]] Particle effects (explosions etc)


*Misc
== Definition Files ==
**[[VirtualFileSystem]]
* [[Gamedev:UnitDefs]] - define the attributes of units
**[[MouseCursors]]
* [[Gamedev:WeaponDefs]] - define the attributes of weapons/projectiles
**[[Units:Textures]]
* [[Gamedev:FeatureDefs]] - define the attributes of static map features and wrecks
**[[Units:Buildpics]]
* [[CEG:Main]] Particle effects (explosions etc)
**[[Sidedata.lua]]
**[[Units:FlankingBonus]]
**[[Armordefs.lua|Units: Armor classes]]
**[[Mod Development:Archives|Game Development:Archives]]
**[[Mod Development:Sidepics|Game Development:Sidepics]]
**[[CustomUnitIcons|Game Development:Custom unit icons]]


=Unit Scripting/Animations (.cob, .bos, .lua)=
== Lua API & Libraries (excerpt) ==
Unit scripts animate units and are needed for various function such as firing weapons.
* [[Lua_Scripting|Lua API Documentation]]
* [[Animation-CobLuaDifferences | Differences of .lua and .cob unit scripts]]
* [[Lua_Libraries|Lua Libraries]]


==Lua Animations==
== Animation of units ==
Lua Animations (LUS)
*[[Animation-LuaScripting]]
*[[Animation-LuaScripting]]
**[[Animation-LuaCallins]]
**[[Animation-LuaCallins]]
**[[Animation-LuaCallouts]]
**[[Animation-LuaCallouts]]
**[[Animation-CobLuaDifferences]]
**[[Animation-CobLuaDifferences]]
**[[Animation:LuaExamples]]


==COB Animations==
COB Animations (Antiquated)
The binary '.cob' file format is a compiled '.bos' script. To convert a '.bos' script file to '.cob' file you will need [[Scriptor]]
 
*[[Animation-CobOverview]]
*[[Animation-CobOverview]]
**[[Animation-CobExamples]]
**[[Animation-CobAnimation]]
**[[Animation-CobAnimation]]
**[[Animation-CobCallins]]
**[[Animation-CobCallins]]
Line 71: Line 46:
**[[Animation-CobThreads]]
**[[Animation-CobThreads]]
**[[Animation-CobHitByWeaponID]]
**[[Animation-CobHitByWeaponID]]
*[[Units:LuaCOB]] - how to interface COB with LUA
**[[Lua-LuaCOB]] - how to interface COB with LUA
*[[CEG_For_Units|Game Development:Calling basic CEGs from COB]]
**[[CEG_For_Units|Game Development:Calling basic CEGs from COB]]
* [http://springrts.com/phpbb/viewtopic.php?p=132943#132943 GPL-compliant sourcecode, scripting code examples, and other things.]
**{{forumlink|topic=7457|title=GPL COB Examples}}
 
== Models & Textures ==
* [[About_s3o|.s3o]]
* [[Assimp]]
** [[3DModels:AssimpWorkflow]]
* [[3DModels:Textures]]
* [[Shaders:CustomUnitShadingFramework]]
** [[Shaders:PBRShaders]]
 
== Misc ==
* [[Gamedev:DebugDrawModes]]
* [[Gamedev:Archives]] - packing game/map
* [[Gamedev:Buildpics]]
* [[Gamedev:CollisionVolumes]]
* [[Gamedev:Glossary]]
* [[Gamedev:MouseCursors]]
* [[Gamedev:Sidepics]]
* [[Gamedev:Structure]]
* [[VirtualFileSystem]]


=Modeling =
= Tools =
Spring supports different 3d representations: '[[About_s3o|.s3o]]' and '[[About_3do|.3do]]', and additionally a variety of common model formats as supported by the ASSIMP library. The biggest difference between these formats is the workflow to create a new unit. There are also s3o exporter plugins for '3ds-max' and an older version of 'blender' so that texturing and modeling can be done using these.
== In-Game Tools ==
In contrast: when you model an '.3do' you have to use [[upspring]] currently.
*[http://springboard-core.readthedocs.io/en/latest/ SpringBoard] - Powerful map and scenario editor
*[[Map Making: Feature Placer|Feature Placer]] - A Map Feature & NPC Unit Placement Tool


The animation with can either be done using 'lua' or 'COB/BOS' is does not depend on either, see rigging/animation. For new units use 'lua' scripting.
== External Tools ==
* [[Upspring]]
* [[Map,_Mod,_And_Unit_Development_Programs|Development Tools]]


=Engine Related=
= Engine Related =
* [[Download_Testing]] - Test the compatibility of your game on upcoming versions of the Spring engine.
* [[Download_Testing]] - Test the compatibility of your game on upcoming versions of the Spring engine.


=Tutorials=
* [[EngineChangelogForContentDevs]] - New engine versions sometimes require games to adjust. A list of common problems.
===Game Development Tutorials===
 
* [[EngineSource_for_GameDevs]] - Notes about the engine source, from modding point of view.
 
= Tutorials =
== Tips, Tricks & Testing ==
[[TestingYourGame|These tricks and commands]] are useful for testing or debugging.
 
== Game Development Tutorials ==
*[[The Complete Guide To Making A Spring Game]] - A fairly comprehensive getting started tutorial.
*[[The Complete Guide To Making A Spring Game]] - A fairly comprehensive getting started tutorial.
*[http://springrts.com/phpbb/viewtopic.php?f=14&t=26409| Porting TA content to Spring]
*[http://springrts.com/phpbb/viewtopic.php?f=14&t=26409| Porting TA content to Spring]
*<strike>[[Simple Mod Tutorial|Simple Game Tutorial]]</strike> - needs to be updated
*<strike>[[Simple Mod Tutorial|Simple Game Tutorial]]</strike> - needs to be updated


===Modeling Tutorials===
==Modelling Tutorials==
'''Wings3D'''
* [[3DModels:Wings3DTutorial]]
* [http://springrts.com/phpbb/viewtopic.php?t=10612 Wings UV Mapping Tutorial]
* [http://springrts.com/phpbb/viewtopic.php?t=10612 Wings UV Mapping Tutorial]
* [http://springrts.com/phpbb/viewtopic.php?f=9&t=12354 Saving polygons in Wings3d Tutorial]
 
'''Blender'''
* [[TutorialBlenderWorkFlow|Blender Workflow Tutorial]]
 
'''3DS Max'''
* [http://springrts.com/phpbb/viewtopic.php?t=10503 Runecrafter's 3DS Max UV Mapping Tutorial]
* [http://springrts.com/phpbb/viewtopic.php?t=10503 Runecrafter's 3DS Max UV Mapping Tutorial]
* [[TutorialBlenderWorkFlow|Blender Workflow Tutorial]]


===Texture Tutorials===
==Texturing Tutorials==
* [http://springrts.com/phpbb/viewtopic.php?f=57&t=22392 DDS Textures:  How To]
* [http://springrts.com/phpbb/viewtopic.php?f=57&t=22392 DDS Textures:  How To]
* [http://springrts.com/phpbb/viewtopic.php?t=10947 Greeble Tutorial 1]
* [http://springrts.com/phpbb/viewtopic.php?t=10947 Greeble Tutorial 1]
* [http://springrts.com/phpbb/viewtopic.php?f=9&t=12356 Greeble Tutorial 2]
* [http://springrts.com/phpbb/viewtopic.php?f=9&t=12356 Greeble Tutorial 2]


[[Category: Unit_development]]
=Misc=
[[Category:Game development]]
* [[Ren'Py]]: a visual novel engine that can be used with Spring
* <strike>[http://answers.springlobby.info/ Q&A Site for the Spring Engine]</strike> Currently down.
 
[[Category:Game Dev]]

Latest revision as of 20:44, 17 November 2022

Development < Gamedev:Main

Game Development

This information is meant to help newcomers learn how to develop their own games for the Spring Engine. If you are interested in creating maps for Spring, see Mapdev:Main.

Templates & Examples

Technical Documentation

GameData

Definition Files

Lua API & Libraries (excerpt)

Animation of units

Lua Animations (LUS)

COB Animations (Antiquated)

Models & Textures

Misc

Tools

In-Game Tools

External Tools

Engine Related

  • Download_Testing - Test the compatibility of your game on upcoming versions of the Spring engine.

Tutorials

Tips, Tricks & Testing

These tricks and commands are useful for testing or debugging.

Game Development Tutorials

Modelling Tutorials

Wings3D

Blender

3DS Max

Texturing Tutorials

Misc