This forum is read only and just serves as an archive. If you
have any questions, please post them on github.com/phoboslab/impact
1 decade ago
by Arantor
I'm sure I'm not alone in wondering exactly what form Impact 2.x will take, and I leave it firmly up to Dominic's judgement in what he wants to tackle, but I thought I'd correlate the requests for 2.x in a single thread in case he wants to tackle any of it now ;)
Think of this as more of a wish list... I mean, it's my birthday in the autumn :P
Network Features
I know Impact 2.x is rumoured to have better integration into things like Node.JS but I know a lot of people would really love to see strong integration, so this is more of a +1 to the idea :)
I'd hope iOSImpact will also support multiplayer where possible.
Level specific information in Weltmeister
In WM, you can add per-instance information to an entity when you add it, overriding any defaults that entity might have and otherwise being very cool. It would be great if we could add similar details for the context of an entire level, e.g. a level's name or some other details about it.
I know I could hack it in when it's a case of dealing with stuff I know every level in my game will have, I've even done that before to implement non-square tiles in Weltmeister, but a cleaner solution would be awesome.
Game Center integration in iOSImpact
Yeah, I've been unsuccessful getting this going because I have no clue what I'm doing with Objective C in terms of binding to iOSImpact, so crazy-easy implementation would be awesome; I'd be surprised if more people weren't interested in this, really. The whole 'achievements' thing makes gaming on iOS more interesting.
Anyone else got anything they'd like to see in Impact 2.x that would be generally fairly useful?
+1 for multiplayer node.js support
+1 for better iOSImpact support, such as either detecting rotation and making buttons still work despite the rotated coordinates, or ability to lock screen so it doesn't rotate.
Possible support for
packed sprite sheets like most other game engines. They can be generated by TexturePacker, Zwoptex and other software. This is more complicated than Impact's current elegant-but-limited way of doing it which doesn't require a plist just to know how sprites are positioned. I admit I personally don't need this but it would make a lot of
free game art already available be useable in Impact.
How about a warning system in the debug console that lets you know what has failed, especially when it comes to sound. The debug could detect what browser / mobile OS you are using, and give warnings based on what you have in your code. For example, "mysong.ogg not supported in Safari." or "error : my.song.mp3 -- audio not supported for iOS". And instead of fail, it would still run but automatically disable sound, having given you a warning. This could sort of be like how Hype lets you do HTML5 layout, but warns you that some things you are trying, such as PNG files with alpha channels, will not work in IE6, etc.
+1 for multiplayer node.js support including:
- simplified multiplayer setup and support (as elegant as the rest of impact is)
- ability to load code from server (e.g., for entity class defs and others, for code protection, and also dynamic class generation)
(realizing second feature may not be feasible for security reasons)
+1 for iOSImpact improvements, namely:
- custom draw support (fillRect, strokes, etc) so I don't have to modify some of my classes
- documented game center and gamekit setup (or example project)
plus:
Acyclic connected graph entity support (container entities), with transform support
1 decade ago
by Jerczu
Well I would be for adding support for social networks in iOSimpact, accelerometer, in-game payments.
1 decade ago
by Jerczu
And 2.5D support so you can make isometric games.
+1 isometric tile support
+1 inApp payments iOSImpact support
1 decade ago
by dominic
Good suggestions!
Impact 2.0 will definitely have multiplayer support. GameCenter shouldn't be too hard to implement either. Not sure about 2.5D (isometric) support though - I'd have to figure out a way to integrate it in Impact without making 2 different engines of it :)
Regarding &
039;Level specific information in Weltmeister': you can easily achieve this with a #Void
entity (from the Biolab Pack). Just give it some keys/values:
name: levelInfo
title: The first Level
music: track3
Then in your Game:
loadLevel: function( data ) {
this.parent( data );
var levelInfo = this.getEntityByName('levelInfo');
this.title = levelInfo.title;
ig.music.play( levelInfo.music );
}
1 decade ago
by Arantor
@alexandre; iOSImpact already does fillRect, because Impact itself needs that to blank the viewport each frame. I agree about the stroking methods though.
Re isometric: I'd suggest making it a plugin if it is at all possible, that way people can pull it in if needed and it can override the relevant parts of the core engine. I know I fudged it for an experiment and created the map in Weltmeister as-is but just changed how the map drew things, though I wasn't happy with having 300+ draws per frame, heh - just for the background, so I didn't pursue it any further.
@Dominic; I did think about doing a void type entity like that, it just occurred to me it would be cleaner to store it directly in the level data without involving an entity of any kind. But it's certainly a viable approach :)
1 decade ago
by Heiko
+1 for multiplayer /nodejs support
+1 for namespace support
Maybe support for loading/unloading games dynamically
- I got this working to some extent by creating a new ScriptResource and using _loadScript, extending ig.Loader, ig.System and ig.Game.
Weltmeister
- have custom keys pre-defined for entity
- i.e. instead of having to add keys in weltmeister, weltmeister will load custom pre-defined keys and you can just change/set the values.
Default NodeJS webserver support like (node-impact)
1 decade ago
by Aitor
@Dominic, but will that multiplayer support be on IOSImpact too?
+1 inApp payments iOSImpact support
+1 Game Center integration in iOSImpact
+1 for better iOSImpact support
+1 for Multiplayer
1 decade ago
by paulh
Multi channel sound on IOS & android (browsers if poss) .. lot of stuff for sound would be great, often seen as an after thought but imperative for good gaming --effects engine:distance based emitters, panning, reverb, dobbling etc)
http://gamasutra.com/view/feature/168731/how_does_ingame_audio_affect_.php
Android implementation
Memory management and optimization tools to easily allow streamlining.
multi-touch as standard
multiple entity layers with zdepth
unlikely:
Ps3 and xbox (if you get any further with it would be awesome,!)
Vita(?)
Wii- u .. nice on those little screens
+1 inApp payments iOSImpact support
+1 Game Center integration in iOSImpact
+1 for better iOSImpact support
+1 for Multiplayer
1 decade ago
by Arantor
@paulh: the limits of what can be done with sound are what the browser makers implement. Much of that simply isn't available in the browser without Flash support (or where it is, mostly in Chrome, it's unreliable, buggy and unfinished)
Memory management is also tricky to perform in JS, since you're at the mercy of the JS engine. If it's that big a deal, learn to use the native tools instead then you have all the control at your fingertips.
1 decade ago
by paulh
yea, with sound id was talking more about mobile, and then it will be ready when the browsers catch up:-)
I dont really want to learn the native tools, thats why i brought an engine :-) But yea i DO need to learn more, but a way of easily managing memory and whats called in what frame would be a great addition, as you seem to agree!
1 decade ago
by Arantor
I'm not agreeing, that's the point. You do not have control over memory management, not really, and there's not really a lot you can do about that in the scope of running in the browser. Any functionality Impact gains with respect to memory management is going to be mostly a placebo, really, because it's not up to your code, entirely, about how memory use is done, other than by you not using memory in the first place...
In terms of generally useful improvements, I'm still really hoping for these items from
dominic's original list:
- An easy way to create menus
- Some way to manage game states (i.e. title screen, game, credits etc.)
Multiplayer is neat but not broadly applicable IMO. These items, on the other hand, are pretty fundamental to almost any game.
1 decade ago
by paulh
maybe im wrong, but doesn't
ig.system.setGame(Intro);
change game state easily?
1 decade ago
by Arantor
No, that changes the running game entirely.
Consider something like the Drop game, that has multiple states - waiting to start, in-game, end of game. You certainly can implement those discrete states as separate game instances, but it would be better not to.
Better example, probably would be pausing the game. You don't particularly want to switch entire game objects (with all the respawning etc.) you'd have to perform if you decided to make paused a separate game object, but you need some way to have that managed as part of the main game object itself as a separate state.
1 decade ago
by paulh
i see,thanks.
ig.system.setstate(pause);
is whats needed?
1 decade ago
by Arantor
Well, sort of, but realistically what we're talking about is having different update/draw functions for each state and all the management required to make that work, since you'd do different things between states.
Isometric support is the only thing stopping me from buying a license. If 2.x had isometric support I'd throw my $99 at you without a second's thought.
I'd love to see some sort of level manager for Impact, and the ability to add key/value pairs to the level object itself at a meta-level. For example, if I want to add objectives to a level or warp points between levels, Impact offers no easy way to do this outside of defining some sort of pseudo-entity to track the level's "state". Of course, if I change levels, then this pseudo-entity gets destroyed. This has caused no small amount of grief.
There is a scene manager plugin some guy made.
https://github.com/samgreen/ImpactJS-Scene-Manager. i've used it, and it's not bad. I've hacked it a bit to fit my needs.
1 decade ago
by paulh
Texture compression
Two more WM requests:
1) Allow multiple layers to be copied when selecting an area of tiles using shift.
2) Easier navigation for large levels. A goto coordinates feature would be handy, as would a fast scrolling toggle.
★★★★★ A round of applause to Dominic I personally feel very thankful, because getting to read properly developed, documented and commented code has improved my skills beyond my expectations.
★★★★ Packed sprite sheets If it doesn't mess up the simplicity and elegance of the animation class, and it doesn't cause a major performance hit on rotating and flipping sprites.
★★★ Add custom parameters to a level within weltmeister I'm currently creating the levels in weltmeister, then adding aditional parameters by hand and parsing them with my scene manager, it's beautiful. I'll attemp to do it myself next month.
★★ Some way to manage game states (i.e. title screen, game, credits etc.) I'm currently using Director plugin by MikeL with some mods, it works wonders, but I bet Dominic can come up with something even better.
★ An easy way to create menus I rolled my own, but once again I bet Dominic can make something even better.
I do understand that Dominic wants to implement multiplayer first tho, that would bring more devs on board, increasig his revenue, and as a side effect the community gets bigger, we will see more plugins and cool stuff.
@Dominic I'd suggest using a tool like Uservoice.com (there are others as well). You should of course state that this is no TO-DO list then, but a whishlist. But then, this is a very useful tool to get an overview of what features are wanted the most.
Base FSM that can be used for things like Game State / Animation State etc. Would also be great if it included transition information (From – to-State : Enter State , Execute State , Exit State) this would make it easy to create complete animation classes with transition animation.
Weltmeister: Ability to create information maps (i.e. like collision maps) but when inside impact they should not get drawn and the assigned sprite sheet used in weltmeister should not be required in the game. ( Currently I create them as normal maps and then prevent them from being draw but this would be nice to have built in).
Map Layer Size / Offset: Add support for map layer offset , so for example I could add a 20 x 20 map anywhere inside a 200 x 200 base map. This would help reduce the size of some of the overlay maps.
1 decade ago
by paulh
canvas drawing functions on ios/android
1 decade ago
by Jerczu
Here's an idea... for feature set - whatever
http://www.scirra.com/ construct 2 does. Like zoom, rotations to the layers separately... If one engine for non coding dumbos can do it I can't see why Impact wouldn't be able to.