Coder Social home page Coder Social logo

ba-st / winter Goto Github PK

View Code? Open in Web Editor NEW
47.0 9.0 4.0 38 MB

Winter is a 2D game engine for Pharo Smalltalk

License: MIT License

Smalltalk 100.00%
pharo pharo-smalltalk mit-license game-development game-engine 2d-game-engine 2d-game-framework gamedev smalltalk

winter's Introduction

Winter

Winter is a framework to develop games in 2D using Smalltalk.
Explore the docs »

Report a defect | Request feature

Build Status Coverage Status Pharo 7.0 Pharo 9.0

It's built on top of Storm from Esteban, providing a conceptual framework to simplify the creation of games in two dimensions.

License

  • The code is licensed under MIT.
  • The documentation is licensed under CC BY-SA 4.0.

Quick Start

Examples

To find some premade examples visit Winter Examples

Installation

To load the project in a Pharo image, or declare it as a dependency of your own project follow this instructions.

Contributing

Check the Contribution Guidelines

winter's People

Contributors

apiorno avatar gcotelli avatar mr-dispatch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

winter's Issues

Adapt to use ECS architecture

The idea is to change to Component Based Entity System (ECS) architecture and use composition to give more flexibility

Not clear how to run the Arkanoid game

I downloaded and compiled Chipmunk. But I later realized that this is not necessary since the libs are provided in the git repo.
I cloned the git repo in the same folder than the one that contains the images.
But apparently, the picture background.png is not found. Actually, it does not seem to be in your repo.

How can I run your game? Here is the error I obtain:
screenshot 2017-11-09 08 45 58

Recommendation to user data methods to store example images

Hi, I just installed Winter and wanted to test one of the examples, and got an error that an external file was missing (one of the images to be loaded).

I am playing around with making games in Smalltalk myself and I've managed tog get around the external files problem by importing the resources I need and converting them to base64 strings and store them in methods (that just returns the string), like this;

(In this case I'm loading an image that contains tiles, but I have used the same process (although a bit different in parts) for sound files too);

|img writeStream encoded byteArray newImg method|
img := PNGReadWriter formFromStream: 'dg_misc32.png' asFileReference binaryReadStream.
writeStream := WriteStream on: ByteArray new.
PNGReadWriter putForm: img onStream: writeStream.
encoded := writeStream contents base64Encoded.

"Decode the base64Encoded bytes and display the image"
byteArray := encoded base64Decoded.
newImg := PNGReadWriter formFromStream: byteArray readStream.
newImg asMorph openInHand.

method := (String streamContents: [:s |
s
nextPutAll: 'getEncoded';
nextPut: Character cr;
nextPut: Character tab;
nextPut: $^;
nextPut: $';
nextPutAll: encoded;
nextPut: $']).
"Add the method to the Sprite subclass"
MiscTiles compile: method

Mejorar la demo del juego

  • que puedas subir o bajar además de moverte a izquierda o derecha
  • agregar jugadores que cuando la pelotita los toque se mueran

Instantiation order errors in examples

Hello, all of the examples do not work for me in Pharo versions 6-8. When an example game is running through the method to initiate a scene, many of the objects in any example try to grab their image by referencing something like game assetManager but because they instantiate before the addComponent method is able to operate on them it tries to send this message to nil.

I kind of see that maybe at one point it was working because each object would only have its 'instantiatemethod when it hit theon: aGame method, but it seems like each Pharo version I tried has some 'new basicInit trait/behavior that's appended.

I'm currently using Ubuntu bionic beaver, tested pharo versions 6 7 and 8. Am I doing something wrong?

Native Physics

Replace actual physics simulation with native simulation like Chipmunk2D

Got an error following installation+example guides

Hi, I just tried to explore the project the first time. First, I downloaded Pharo 7 64bits, and then evaluated:

Metacello new
  baseline: 'Winter';
  repository: 'github://ba-st/Winter:release-candidate/source';
  load.

and then:

ArkanoidGame new start

which couldn't find an asset. I see that in there are assets for the example games in the file structure of this repository, but as I can wait, I prefer to report the issue here... maybe I just did something wrong.

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.