Which language are you trying to implement it on?
I try to put as little in a class as possible, and use inheritance as little as possible. So yeah, every class does basically one thing and I have a lot of them. They link together through composition (usually dependency injection).C# sharp. I don't understand how to decide what an entity will be or how to get the different entities to interact.
C# sharp. I don't understand how to decide what an entity will be or how to get the different entities to interact.
module Explosive
module HandlesLikeAVehicle
class Tank
include HandlesLikeAVehicle
end
class Car
include HandlesLikeAVehicle
include Explosive
end
class Barrel
include Explosive
end
I try to put as little in a class as possible, and use inheritance as little as possible. So yeah, every class does basically one thing and I have a lot of them. They link together through composition (usually dependency injection).
I am bad at explaining how to design classes in this way. Basically, in a class's constructor you pass in all the things that class is going to use. What these things are and how they interact depend on the context. Usually, if I say to myself "I need something that does [this]" I will usually make a class for that thing. Any class that needs that thing done will just get a copy of that other class in its constructor.
This is the methodology I follow in software engineering in general, and I use it in games because it just seems like good practice.
Here are some links which you have probably come across already
http://gameprogrammingpatterns.com/component.html
http://piemaster.net/2011/07/entity-component-primer/
Sorry if I misunderstood your question.
I'm not sure how to implement it in C# since it makes much more sense on other more dynamic languages but here it goes. Usually in a typical OOP way you had a class for each object of your world. If you had a barrel, a car and a tank it probably would have gone something like this:
Object -> Vehicle -> Tank
Object -> Vehicle -> Car
Object -> Barrel
The thing is you probably want:
- The barrel to explode
- The tank to move like a vehicle
- The cat to move like a vehicle AND explode
So with traditional OOP this becomes quite difficult to achieve. So with the Component/Entity pattern you do something like this (classes are entities, modules are components):
Code:module Explosive module HandlesLikeAVehicle class Tank include HandlesLikeAVehicle end class Car include HandlesLikeAVehicle include Explosive end class Barrel include Explosive end
This is slightly different than multiple inheritance, bear that in mind. So an entity is almost nothing, it's usually just a container for the components. How do you make them interact? usually you can use some kind of reflection on the classes and guess if certain_object.is_explosive? then explode. It all comes down to the language you are using though. Basically you are trying to reuse some common minimal behaviour but without recurring to inheritance.
Yeah, that's definitely different than what I am used to.From the things I've read people say entity should only contain a Key. And that Key should be used look up a record to tell you what components are attached. The components only hold states that are processed by systems. This is the way I'm understanding it from what I read, so what you guys are saying is similar in nature, but a different.
From the things I've read people say entity should only contain a Key. And that Key should be used look up a record to tell you what components are attached. The components only hold states that are processed by systems. This is the way I'm understanding it from what I read, so what you guys are saying is similar in nature, but a different.
There are two things there:
- The key -> components table. In most cases I'd say is a limitation on how to implement this paradigm in certain languages rather than a design choice.
- Who decides what to do with an entity with an "explosive" component is a design choice. If you are not refactoring code logic into the component then you are doing nothing more than just tagging your entities.
Glad you now know about it.Took me like 5 years to get sick of it and 5 years to plan and save what the hell I was going to do with my life. ...
Too many choices and too much noise. What's the game you are going to create?... I was thinking in starting with some small games and applications for mobiles, but boy, there are too many choices and I'm still kinda lost. ...
Not sure if it is of any help to anyone (most of you probably have your own) but we shared our press contact list (only contacts that are available on the net, no personal ones).
We are also working on two titles right now (both are developed in Unity):
Oliver&Spike: Dimension Jumpers (3D Console Adventure/Platform mix)
*Lots of pretty*
More info on our O&S blog.
It is incredibly frustrating at this moment in time to try to get funding or a publisher for O&S. Everything really speaks against it Marketing wise but we are just too stubborn to let the whole low cost, end of console generation cycle, mobile trend take over. We still believe that there can be new, ambitious IPs for console games, damnit
That would be telling.Nice! Great pick; he does really quality stuff.
What type of game is it?
I've not worked on a game before, but I've been working towards getting into concept art for a while, so I'm naturally very interested in getting involved with a project. Unfortunately I'm not really sure where to start. I've done a few tutorials in Unity3D and it seems simple enough to grasp, plus I have a couple years of Maya experience.
What I'd like to do is start off with a simple sidescroller or top-down adventure game (metroidvania, zelda) that focuses on hand rendered art (Bastion, Trine, Rayman Origins). I have a few ideas for concepts, but I'm assuming I'll need someone to team up with that has a bit more experience.
Anyways, would Unity be appropriate for a 2D game (probably with several "layers" of interactivity, 2.5D I guess? oh and I use a Mac btw)? And is this something I could reasonably learn as I go and do myself in terms of gameplay engineering, or would I have to recruit someone? (any gaffers up to it? pm me if you'd like to see my ideas )
Have you tried Sony's PubFund? Crowd sourcing?
Looks very VERY professional, hope you get your game out there!
Great stuff, Tash!
I'm really glad to see a lot more 3D stuff coming out of indie games these days
That's part of the problem. It's actually hard to sell it as an indie game to the crowd. So we are not an indie quirky/special darling like say Fez, Journey or Bastion.
I have contacts for Sony's PubFund but we haven't used it yet since we are in discussion with some of the big guys directly. We'll see where it goes.
We think that crowdfunding will be hard for this one. It's not a cheap project (cut-scenes with voice-overs and all and consoles. I am not sure if people are ok to open up their wallets for a no-name indie with no console track record so far. Not to mention garnering the attention of the media and coverage. We are looking at a 1 million USD goal to get it all finished. See what I mean?
Either way, thanks for the encouragement. Appreciate it a lot
Good Sir, I think you would be surprised just how many of us would be happy to have a well polished platforming game in an imaginative world. Castlevania did well for so long for being a reliable, creative for what it was, polished experience.
Gate Keepers for consoles are rather sad. :/
Good luck to you though! Stay in touch
Hey all! The game I've been working on with my small three man company Ragtag Studio was just revealed yesterday. Its called Ray's the Dead, a game about growing and managing a huge zombie army. I know there is some Zombie fatigue out there, but this one is quite different from what you normally see in Zombie games. Please take a look at the article here:
http://www.polygon.com/2012/12/5/3722424/ex-wideload-rays-the-dead
Thanks!
I've not worked on a game before, but I've been working towards getting into concept art for a while, so I'm naturally very interested in getting involved with a project. Unfortunately I'm not really sure where to start. I've done a few tutorials in Unity3D and it seems simple enough to grasp, plus I have a couple years of Maya experience.
What I'd like to do is start off with a simple sidescroller or top-down adventure game (metroidvania, zelda) that focuses on hand rendered art (Bastion, Trine, Rayman Origins). I have a few ideas for concepts, but I'm assuming I'll need someone to team up with that has a bit more experience.
Anyways, would Unity be appropriate for a 2D game (probably with several "layers" of interactivity, 2.5D I guess? oh and I use a Mac btw)? And is this something I could reasonably learn as I go and do myself in terms of gameplay engineering, or would I have to recruit someone? (any gaffers up to it? pm me if you'd like to see my ideas )
Hey all! The game I've been working on with my small three man company Ragtag Studio was just revealed yesterday. Its called Ray's the Dead, a game about growing and managing a huge zombie army. I know there is some Zombie fatigue out there, but this one is quite different from what you normally see in Zombie games. Please take a look at the article here:
http://www.polygon.com/2012/12/5/3722424/ex-wideload-rays-the-dead
Thanks!
@Tash: Both the 3D game and the platformer creation tool look promising, and totally awesome, congratulations!
Also, your studio's press contact list will be really useful once I have a good enough prototype for showing at review sites! I'll need to show Quark Storm more soon, since it's still absolutely unknown except for my friends and family, the pople that assisted to the Indie Showcases I displayed my game on and as the teachers and students I've worked or hung out with.
That's certainly encouraging and in par with what people told us during GDC in March. We'll see
So after a hiatus for a year, I'm getting back into game development. Working on a new game.
I like hand drawn games. So wanted to show a little sneak peak of it and see if just a few teaser images would peak any interest. Lets me know if anything looks appealing. So here's the first snippet of some art from the game.
The game is being drawn for HD. Sorry for my hideous art style. Haha.
I made this very crude test animation tonight, took about 45 mins on my first try:
I'm thinking about making an entire game using hand-drawn animation. Would be a lot of effort of course, but from the programming side of things I'm guessing it would be pretty simple, no? Puzzle platformer, you'd be interacting with unique parts of the environment, items and characters a lot. I'm thinking I can at least set up one or two rooms and see how it goes.
Nice job what software are you using?I made this very crude test animation tonight, took about 45 mins on my first try:
I'm thinking about making an entire game using hand-drawn animation. Would be a lot of effort of course, but from the programming side of things I'm guessing it would be pretty simple, no? Puzzle platformer, you'd be interacting with unique parts of the environment, items and characters a lot. I'm thinking I can at least set up one or two rooms and see how it goes.
Thanks That was made in Photoshop but I would be using Unity for the game. And yeah that's not meant to be a useable animation, the real one would be clean.
Btw if I made the entire game out of primarily planes and high resolution textures I'm assuming I would not be likely to ever run into performance issues?
It depends what devices you're targeting (mostly because most mobile devices have considerably less VRAM than computers), but you'd probably be fine as long as you keep an eye on texture sizes.
whoa very first review of Fruitmatter:
http://www.indiegamemag.com/fruitmatter-review/
Indiegamemagazine did a review few weeks ago, I just read it through and what do you know... Game gotI'm happy!80/100!
Come on, at least sort your classes into folders/namespaces.
Won't make the game play any better, and I'm a one man operation!! Luxury when you're used to working in a team!
Unity doesn't play well with namespaces.Come on, at least sort your classes into folders/namespaces.
Surreal, my first programming experiment was shown for a few seconds on the Spike VGA Awards. I don't think that normally happens.
Nice work man! Have you been building this yourself?
100% agree with the bolded. I'd just drive me crazy