What is Spring?

What is Spring?

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

Post Reply
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

What is Spring?

Post by knorke »

scroll down for TL;DR
FAQ wrote: What is Spring?

Spring is a project to create the best RTS engine ever (no joke). There are three principle goals which we hope to achieve.

1. Build a flexible and powerful 3D RTS engine that can handle large numbers of units and state-of-the-art special effects and animation.
2. Support new games and maps with powerful built-in Lua language support that allows game designers to realize their goals and develop better and better games.
3. Support end-users, fix bugs and provide the best support we can.


When I started making stuff for spring I thought it would just be very high level stuff.
Just edit some unitDef files and write some fairly simple scripts like If (unit is in lava) then kill unit end

Basically not having to worry about writing your own engine, only having to make gamelogic and graphics. (kind of like love2d.org, yes spring is 3d and more complicated blabla)
The longer you look at the "game creation scene" of spring it is clear it does not work like this.
With no reliable documenation even basic stuff is guessswork, trial&error. I think game makers should not have to look at the engine source ever. Looking up a list of tag names is ok and sadly nessecary atm but that is not really that helpful anyway: what are valid values? what does the tag do? in combination with other tags?
If you can learn all that from the source, cool, I think 99% of potential game makers can not.

The engine gets more and more features but nobody knows how to use them. Or that they exist.

"powerful built-in Lua language support that allows game designers to realize their goals"
What use is being able to script custom gameplay logic if the first problem is where to find a working unitdef? Or a simple "base-mod" without unneeded stuff in it?

To me that explains why there have hardly been serious attempts at new spring games in the past 5 years. And the games that are playable now are mostly rooted in TA: either directly like BA, starting out on the TA engine (gundam) or the creator learned modding on TA.

yes of course its a useless baww thread. i always wanted to make one, too.

tl;dr
Image

What do engine devs/mod makers think how new games should be created?
Do you feel there is enough stuff avaivable to help people start making new games?
Is 0.82 too early to start with the creation of playable content?
Is making the engine the fun part and games are by-products?
Are game makers just expected to have a deeper understanding of the engine? (i think zeroK team has some engine devs?)
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: What is Spring?

Post by smoth »

I think that the luafication of almost all(if not all) code/script game files has greatly decreased the learning curve. This has been one major step towards greatly simplifying the engine and working within it. There is much still to do with regards to this. For example, lualobby, the ability to host, chat and rejoin is going to be awesome.

I think things like
SME(why isn't this in the engine git?)
chili(finally an established ui framework still wip but very strong)
Map configs, which can be used to setup base map files and feature sets(see my recent maps)
Featureplacer(which I need to finish, sorry irl is killing my dev time right now)

ROAM(is going to be huge)

This is all good stuff and and really has begun to round out some of the areas of spring that are weak, namely ui, tools and control of maps. On my to do list once SME is more stable is the creation of spring map tilesets so anyone can do what I have been doing in worldmachine.

This to me says that the engine has become easier and has been augmented by the stuff and methods available. Over the years we have had many users who have created ample powerful and useful source code examples, key among them have been KDR, Z, QUANT, JK, CARP, (increasingly, you knorke) etc... We have people like aegis and lurker who if I could put a spigot in their cranium and suck out the delicious candy I am pretty sure I would form a rip in space time allowing me to break reality.

I think it has begun to become a truer engine with more and more game controlling code being isolated and luafied. Soon, possibly in the next couple of years the engine will finally be free of the TA-Throwback shackles that have oppressed it so.

So where does this leave new game creators? Well there is a rather bewildering and conflicting body of knowledge. Many games still use bos and other are using lua unit scripts. We have most games over to just lua files but there needs to be more done with that.

Spring's git needs a demo game. Nothing really playable. 1 starting unit, 1 factory, 1 tank, 1 aircraft etc. So the starting developers have a launchpad to copy paste away. It should be public domain and gpl so that it meets the bullshit Debian GPL nazi crap and still allows people to freely take it as a base for whatever license game they want(because it is also pd). Such a project is a good idea in my opinion and should include chili. So that there is a stable version of chili available to new game makers and it is ready right out of the box(IMPORTANT IMO) with basic widgets, filled with comments. This needs to be part of the github and included with the engine installer as a "starter kit" or some sort of similar option.

Also should be a simple html document set detailing things like scripting and lua. Hell that documentation SHOULD be part of the engine release. That is a deliverable in most commercial projects. The wiki is not proper documentation. This may be frustrating at first but it will result in less guess work with regards to engine features at the time of release and on. I wish I had more time, fuck.

anyway I really have to sleep, the post is long because I have not had time to condense it. Does this help knorke?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: What is Spring?

Post by AF »

+1 for more documentation

SME shouldn't be in the engine git, the installer maybe, but it has its own respository on my servers
User avatar
FLOZi
MC: Legacy & Spring 1944 Developer
Posts: 6240
Joined: 29 Apr 2005, 01:14

Re: What is Spring?

Post by FLOZi »

Smoth raises an important point somewhat indirectly. Knorke, you may think things are hard and messy as they are now, but to old timers like me and Smoth, Spring is better now than it has ever been, and continues to get better.

Yes we do need better docs, and yeah, a set of base games is something I've been interested in for a long time (but alack, laziness has ended up in me not delivering what I promised), but the truth is that content devs are at least as responsible for this as the engine devs
zerver
Spring Developer
Posts: 1358
Joined: 16 Dec 2006, 20:59

Re: What is Spring?

Post by zerver »

U can always play 8V8BADSD while you try to find the non-existent docs
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: What is Spring?

Post by PicassoCT »

Why not write some widget that autocoments tags and values?
//Has interacted in test-game sit1(moving) with tag1/tag2/tag3/value
//Has interacted in test-game sit2(underfire) with tag5/tag6/tag7

Just have to run uncomiled game with pattern analysis ;D


Somewhere - some dev is raging. Makes me happy to be out of (h)arms reach. Oh, also second knorkes bawwww.

But the problem is as old as open source- people coment there work at work, because they wouldnt get paid if others couldnt read there code, but this beeing free-willy, they skip the coment.
Typical Dev thought: "Always gonna be with you- and make believe in you-Spring!"
Typical Dev GF thought: "How to explain that im pregnant, and that he needs to stop coding, and start to hop through my hoops."
Typical Devs Doctor thought: "If he doesent exercise moar, and quits smoking, he is one heart-infarct away from When-hes-done."
Typical Devs Devil thought: "Lets post in a thread, make it to long, did not read!"
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: What is Spring?

Post by knorke »

Over the years we have had many users who have created ample powerful and useful source code examples
but also just as many whos work got lost or forgotten ie http://springrts.com/phpbb/viewtopic.php?f=23&t=17935
A better way of keeping knowledge like this alive after a user (<-hoho) leaves spring would be nice...
Also should be a simple html document set detailing things like scripting and lua. Hell that documentation SHOULD be part of the engine release. That is a deliverable in most commercial projects. The wiki is not proper documentation.
Such thing would be nice but realisticly it will not happen. I think it is possible to make proper documentation with a wiki and the advantage is that more people can contribute. Better to have a 75% done wiki available then have a 99% done html on somebodys harddisc. Sadly wiki is more like 5% complete :wink: and this one is fail due to being mixed with player content like "how to defend against rush" and having no synthax highlighting among other things...

Yes, Demo/modtutorial game would be really nice to have. Actually infamous tutomod is trying to be just that. (tuto->tutorial) but it has too many files.
Another option would be to use the game from
http://springrts.com/wiki/The_Complete_ ... pring_Game
It already is quite good.
It would just need somebody to look through all the files. ie remove unused tags or in the scripts replace things like GetUnitValue(COB.BUILD_PERCENT_LEFT) with the Lua functions etc.
The best way to do so would be an SVN...I do not know how to set one up but if somebody does I would commit changes.
A wild thread appears! Will it be super effective?

Why not write some widget that autocoments tags and values?
Tool to scan through mods and mark wrong tags would be possible but can only be done by somebody who knows everything about unit/weapon/feature/... def files. Ideally the engine would give warnings.
User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Re: What is Spring?

Post by Forboding Angel »

Well in reply to first post...

I basically have evo to the point that you could rip out all the evo parts of it and make a quite convincing game. Most of the groundwork has already been lain.

One of the goals of evo has always been to get it to this state, to where I can just take the guts of evo and put together a classy game from scratch in 1/16th of the time it took to make evo.
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: What is Spring?

Post by knorke »

you could maybe do that.
the point is, others could not. they would carry over tons of junk.
User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Re: What is Spring?

Post by Forboding Angel »

Well there is also the caveat of the fact that it assumes that you're using metal spots simply for resource markers and nothing else (with the resources being given at a constant rate from the unit -- Works very similar to supcom mass resource locations).

SO it's not a perfect drop in replacement, but with a little explanation, it could be dropped in and functional for most people with very minimum of effort.

But yeah, anyway :-/
User avatar
bobthedinosaur
Blood & Steel Developer
Posts: 2700
Joined: 25 Aug 2004, 13:31

Re: What is Spring?

Post by bobthedinosaur »

lets be realistic. why dont we just create a final plan for spring centering on dsd ba play. that way there will be no need for constant updates and every one will be happy.
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: What is Spring?

Post by knorke »

Something I forgott to respond:
Over the years we have had many users who have created ample powerful and useful source code examples
Yes, there are many advanced examples.

But there are no simple examples.
There is "feature place" but what does a featureDef even look like?
There is "chili UI" but how do you even write "hello world" with spring gl?
There is "resource harvesting" but what resources does the engine have anyway?
why dont we just create a final plan for spring centering on dsd ba play.
Because I think it should be possible to make a spring game in ~1 year MAX (maybe even days) instead of it being a life time commitment. I dont see why a spring game with few units should not be made in the same time frame as a game that is written from scratch. ie Pong, Bomberman, Tetris, ... people around the world make those games all time in some days/weeks while learning programming.
With easy game downloading by rapid,lobbies,...there could be a flood of new games by new modders.
Or maybe just non-playable stuff that is just interessting to look at like AIs or something.
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: What is Spring?

Post by PicassoCT »

Devs dont want to be overrun by impressive nubs. Commiting once life has to be worth something. You will learn knorke, just look at mapping- we made it easy, and as result we got drowned in maps, everybody was super creative- and when everybody is super, nobody is.

Just imagine everybody could do a lavamap. To be knorke, all you need would be to have extraordinary ideas- so everybody, well not everybody, but many buddies would- well the point is- we dont want competition. ;D
User avatar
bobthedinosaur
Blood & Steel Developer
Posts: 2700
Joined: 25 Aug 2004, 13:31

Re: What is Spring?

Post by bobthedinosaur »

there are a ton of new games. The people have spoken, they want their dsd. Lets focus our efforts on the best DSD we can give them!
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10450
Joined: 24 Jan 2006, 21:12

Re: What is Spring?

Post by PicassoCT »

Never ever doubt the choice of the people. Apes in Groups, were could this possibly go wrong.

Srsly, knorke has every point of logic right, the only problem is, people beeing not affected by logic at all. The only way to change this is to make this a pain in the ass for every moder and dev around, and the only pain in the ass spring can generate (for devs) is the nub-attention.

So, if you want something done, hand over there contact-info, start a dsd-sever- that crashes every 30 mins, and tell the cast that this only could be fixxed if this burning issue gets fixxed.

Public annoyonce makes fukkin miracles happen.
Post Reply

Return to “Engine”