This code can be just in a method of subclass of BlGameElement. You should really try because Bloc is really nice. And this is not a layer this is the future Morphic.
Now if you work on SDL instead of Athens (remember Athens is an API) when we will change SDL for the next low level framework you will have to change. Stef On Mon, Jan 1, 2018 at 5:50 PM, Hilaire <[email protected]> wrote: > Hi Stef, > > A complete port of the SDL capabilities > (http://wiki.libsdl.org/Introduction) will be super nice (audio) and > improved stability. > > For your students, the perspective on the game is likely 2 months, may be 6 > months; you know I have longer perspective - DrGeo was slowly developed and > crafted for 20 years; therefore stability on the code is very important for > me as I will have to work over long period. That's the reason I don't fell > at ease relying on many code layers. For your students, as the horizon is > counted in months it is a null consideration, not for me. Not to mention > there are uncertainty over this layers. Moreover these layers will make hard > to my student to understand what's going on, if they want to dig in. > > I am not sure how far will get me this reflexion, but for my students, I can > imagine different models of 2D games: board games, horizontal/vertical > scrolling games, isometric games. Each one can be optimized differently. > Banks of sprites and audio will be already there to get started the > students. The models will encapsulate SDL, as PyGame is doing, but still > easilly accessible. > > I imagine such an environment to rely only on two layers: SDL and spec, the > later if some dedicated user interface is needed for the game designer; but > a lot should happen in the class browser. > > I found this Python PyGame code bellow rather easy to understand. Will it be > possible to produce an equally understandable Smalltalk code with the layers > your are proposing? > > importsys,pygamepygame.init()size=width,height=320,240speed=[2,2]black=0,0,0screen=pygame.display.set_mode(size)ball=pygame.image.load("ball.bmp")ballrect=ball.get_rect()while1:foreventinpygame.event.get():ifevent.type==pygame.QUIT:sys.exit()ballrect=ballrect.move(speed)ifballrect.left<0orballrect.right>width:speed[0]=-speed[0]ifballrect.top<0orballrect.bottom>height:speed[1]=-speed[1]screen.fill(black)screen.blit(ball,ballrect)pygame.display.flip() > > > Hilaire > > Your time stamp bellow is a strike! ;) > vvvvvvvvvvvvvvvvvvvvvv > > Le 01/01/2018 à 00:00, Stephane Ducasse a écrit : >> >> Hi hilaire >> >> Some students at Prague are working on different 2D games with Bloc >> and this is working. >> Some did a sokoban, other a miner (check on pharo weekly). >> >> They use Bloc and I will ask them to make public their code. >> No need for SDL. SDL is ***low level***. >> >> Now modeling the board and proposing some abstractions that can be >> easily extended is difficult. >> and this is what lauraMaximilliano did in MetaBorg. >> >> It was on my todo to do a pass. I implemented a grid to help the >> design of board game. >> Now having direction/location can be good. >> >> What is interesting in the design of metaborg is that we do not test >> if an object can move to >> a place. We go to the place and the place pull the item. >> A wall will not pull for example while a empty slot will pull the item to >> move. >> >> I found it intriguing and I would like to know if this is working for >> more complex situation. >> >> Maximiliano implemented sokoban, tetris, snake, pacman with the same >> framwork. >> Now it is a bit abstract but an interesting experience. >> >> >> Stef >> >> On Sun, Dec 31, 2017 at 2:41 PM, Hilaire<[email protected]> wrote: >>> >>> I am*exploring* if Pharo will be suitable to have a simple programming >>> environment to let kids write simple 2D games, SDL was designed for that. >>> >>> Some of my students asked me about programming games, Smalltalk way of >>> writing code will be neat, but the environment need to be accessible and >>> not >>> over engineered. >>> >>> >>> Le 30/12/2017 à 22:32, Stephane Ducasse a écrit : >>>> >>>> What kind of game are you targeting? Did you look at Bloc? Because to >>>> me this is the way to go except if you want just a canvas >>>> and reimplement your event loop. in that case SDL + Athens should work. >>> >>> -- >>> Dr. Geo >>> http://drgeo.eu >>> >>> >>> > > -- > Dr. Geo > http://drgeo.eu > > >
